我正在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);

07-28 01:25
查看更多