我很疲倦地找到realm.getDefaultInstance或getInstance作为线程
让我们说我们有2个类正在后台运行以从服务器获取消息
当我使用某个类的领域来保存消息时:
Realm.init(context);
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
// save all data
realm.commitTransaction();
realm.close();
以及当我使用适配器从领域加载项目时
应用程序加载数据非常缓慢,有时我得到:应用程序没有响应
从领域代码加载数据:
new Thread(() -> {
list.clear();
Realm.init(context);
Realm realm = Realm.getInstance(MoonApplication.group);
RealmResults chats = realm.where(MessageRoom.class).equalTo("from", username).and().equalTo("to", us).or().equalTo("from", us).and().equalTo("to", username).findAll();
if(chats != null){
for(int i=0; i<chats.size(); i++){
long id = chats.get(i).getId();
String from = chats.get(i).getFrom();
String to = chats.get(i).getTo();
String body = chats.get(i).getBody();
String time = chats.get(i).getTime();
// etc.....
}
}
realm.close();
((Activity)context).runOnUiThread(this::notifyDataSetChanged);
}).start();
有人可以告诉我如何使用最佳方式在领域上加载和保存数据吗?
注意:当我关闭某个类的领域时,所有类均关闭 当我没有关闭时,我会通过日志收到通知,您是否忘记关闭领域?
感谢帮助!