我正在websocket onresponse方法中将消息从适配器发送到websocket我正在更新领域模型类,但进程是在后台进行的,不会前进:
在这里您可以查看我的代码:
公共静态void updatemsgsstatus(字符串userid,
字符串消息ID,
消息状态消息状态{
Realm realm = Realm.getDefaultInstance();
Message message = realm.where(Message.class)
.equalTo(Message.USER_ID, userId)
.equalTo(Message.MESSAGE_ID, messageId).findFirst();
realm.beginTransaction();
message.setMsgStatus(msgStatus.ordinal());
realm.copyToRealmOrUpdate(message);
realm.commitTransaction();
}
在这一行中,message.setmsgstatus(msgstatus.ordinal());在后台什么也不做之后,我在这里等待:
如果我在这个方法中创建自己的线程,那么realm不会通知适配器
提前谢谢:)
最佳答案
您可以在绑定/呈现数据的领域实例上使用change listener,docshere。
我确信您会将此映像通知您已订阅的对象的更改。
realm = Realm.getDefaultInstance();
RealmResults<Message> messages = realm.where(Message.class).findAllAsync();
messageChangeListener = new RealmChangeListener() {
@Override
public void onChange() {
// update your dataset
mAdapter.notifyDataSetChanged();
}
};
messages.addChangeListener(messageChangeListener);