微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于请求和响应的android数据库访问设计

如何解决用于请求和响应的android数据库访问设计

我正在尝试向数据库生成请求,并以异常或其他数据类型的形式接收响应。
我的设置是sqliteRooms
问题始于在主线程上执行数据库查询Rooms限制。
将潜在的UI工作移出主线程需要保存对源活动的引用以进行结果处理。
解决更新问题,我正在使用LiveData,但它不适用于请求响应类型的情况。
我经常看到的一种方法是将AsyncTaskWeakRefrence一起使用以防止内存泄漏
例如

static class AddFolderAsyncTask extends AsyncTask<String,Void,Exception> {

        private WeakReference<Activity> ref;

        public AddFolderAsyncTask(Activity activity) {
            ref = new WeakReference<>(activity);
        }

        @Override
        protected Exception doInBackground(String... strings) {
            // do something...
            return null;
        }

        @Override
        protected void onPostExecute(Exception e) {
            
            Activity activity = ref.get();
            if(activity != null) {
                // its ok!
            }
        }
}

您可以对线程库和runOnUiThread进行几乎相同的操作,但仍然需要保持安全引用。
我想知道是否有一种方法可以不使用WeakRefrence并确保内存泄漏安全,就像一个我可能不熟悉的库(我是一个初学者),因为这是一个很常见的用例。
你们都如何向数据库发出请求并安全地收到您的回复

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。