为什么对象替换而不是在Realm中更新?

时间:2016-03-30 10:23:00

标签: android realm

我正在处理一些聊天 - 应用复杂的消息。 来自API的消息存储在领域DB中。

当我收到消息时:在API响应后调用,反序列化完成,消息更正:

 realm.beginTransaction();
 realm.copyToRealmOrUpdate(listOfBaseMessageResponses);
 realm.commitTransaction();
db中的

消息被替换,我被迫在我的活动中创建一个List并尝试自己处理更改。

活动中跟踪的变化:

messagesChangedListener = new RealmChangeListener() {
...
}
mBaseMessageResponsesRealm = realm.allObjects(BaseMessageResponse.class);
mBaseMessageResponsesRealm.addChangeListener(messagesChangedListener);

获取消息的方式:

return realm.allObjects(BaseMessageResponse.class);

BaseMessageResponse类(getter和setter存在。为了更好地理解不显示):

    @SerializedName("clr")
    @Expose
    @PrimaryKey
    private String clr;
    @SerializedName("cap")
    @Expose
    private String cap;
    @SerializedName("eoc")
    @Expose
    private int eoc;
    @SerializedName("list")
    @Expose
    private RealmList<MessageInResponse> list = new RealmList<MessageInResponse>();
...

此外MessageInResponse包含嵌套类。

为什么要更换邮件?我尝试了很多方法来解决这个问题,但没有结果。

可能是copyToRealmOrUpdate方法的PK和逻辑问题?

0 个答案:

没有答案