事务后刷新RealmList-Android

事务后刷新RealmList-Android,android,database,realm,Android,Database,Realm,我在android应用程序中使用Realm 在解析Json并从后端接收名为MessageList的RealmObject之后,我会执行以下操作 if (messageList != null) { RealmList<Message> messages = messageList.getItems(); if (messages.size() > 0) { //Populate Recycler view UI

我在android应用程序中使用Realm

在解析Json并从后端接收名为MessageList的RealmObject之后,我会执行以下操作

    if (messageList != null) {
        RealmList<Message> messages = messageList.getItems();
        if (messages.size() > 0) {

            //Populate Recycler view UI
            displayMessages(messages);

            //Start transaction
            dbManager.copyToRealm(messages);
            //End transaction....
        }
    }



public void displayMessages(RealmList<Message> messages) {
    mAdapter = new EventsAdapter(getContext(), mPresenter, messages,
            mPolentaApi.getCommunity());
    mRecyclerView.setAdapter(mAdapter);
}
if(messageList!=null){
RealmList messages=messageList.getItems();
如果(messages.size()>0){
//填充回收器视图用户界面
显示消息(消息);
//启动事务
dbManager.copyToRealm(消息);
//结束交易。。。。
}
}
公共void显示消息(RealmList消息){
mAdapter=neweventsadapter(getContext(),mPresenter,messages,
mPolentaApi.getCommunity());
mRecyclerView.setAdapter(mAdapter);
}
消息也是一个真实的对象

我可以在我的应用程序的另一个区域修改消息,我需要这些更改反映在我的UI中

这是我的适配器:

public MessageAdapter(Context context, RealmList<Message> messages){
}
public MessageAdapter(上下文,RealmList消息){
}
我已尝试将notifyDataSetChanged()与适配器一起使用,但不起作用

我知道RealmBaseAdapter,但这仅适用于RealmResults


有什么想法吗?

您需要将复制的消息添加到适配器中。Realm不修改原始副本,而是返回托管副本,其中将反映更改:

如果要显示自动更新的消息,必须执行以下操作:


List managedMessages=dbManager.copyToRealm(消息);
新的MessageAdapter(上下文、managedMessages);

我已经在这样做了,请查看上面的displayMessages方法。它看起来不是这样的。在执行
copyToRealm()
之前,您正在调用
displayMessage()
,这意味着您正在UI中显示未复制的值。