RealChangeListener onChange()永远不会触发

时间:2016-11-06 19:24:28

标签: android realm

领域版本:2.1.1

我有一个片段,其中onCreate()我注册了RealmChangeListener。但是,当我的对象更新后,RealmChangeListener的{​​{1}}永远不会触发。

实际上,这是一个谎言,由于一些奇怪的原因,如果我清理安装我的应用程序它将工作几次之前根本不工作,直到我再次卸载/重新安装应用程序。

我知道我的onChange()操作正在写入Realm,因为如果我重新启动应用程序,UI肯定会显示这些新的更改。不知道为什么听众会注销?

在这里感到有些困惑,我希望我没有做错事:

Realm

1 个答案:

答案 0 :(得分:2)

您的问题可能是您实际上未保留对User对象的强引用。

public class ProfileFragment extends Fragment {

    private Realm mRealm;
    private RealmChangeListener mRealmChangeListener;
    private User user;

...

            // Get user from Realm
            RealmQuery<User> query = mRealm.where(User.class);
            user = query.findFirst();

此外,您处于片段中,因此您应该考虑将onCreate() / onDestroy()移至onCreateView()onDestroyView()(除非这是保留的片段) ,在这种情况下继续)。

如果问题仍然存在,请在此处报告。