FindFirst returns null

天涯浪子 提交于 2019-12-02 02:48:33
EpicPandaForce

AsyncTask is in a threadpool, and considering you open Realm instances that you never close with your getUser() call, your Realm version becomes locked at the version when you first called getUser().

return Realm.getInstance(context).where(UserRealm.class).findFirst(); // never closed

So even though you commit a transaction on another thread in the threadpool, not all threads will be up to date (because you locked them on an old version by opening Realm instances that are never closed), and sometimes the object will be null.

Solution, close all Realm instances on background threads (or force an update if that's not enough for some reason).

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!