如何避免 - 此Realm实例已被关闭,使其无法使用?

时间:2017-10-02 09:52:39

标签: android realm

使用Realm实例的最佳做法是什么?在我使用realm实例的任何地方的代码中,在我完成了realm实例后,我自己关闭它,但我经常遇到这个问题。

例如,

static void setUserEmailVerifiedToRealm(){
         User realmUser = getUserFromRealm();

         Realm realm = null;
        try {
            realm = Realm.getDefaultInstance();
            realm.executeTransaction(realm1 -> {  // Exception
                if(realmUser != null) {
                    realmUser.setEmailVerified(true);
                    Log.d("xxx", "Email verified");
                }
            });
        } finally {
            if(realm != null) {
                realm.close();
            }
        }
    }

    public static User getUserFromRealm(){
        Realm realm = null;
        final User[] user = new User[1];
        try {
            realm = Realm.getDefaultInstance();
            realm.executeTransaction(realm1 -> {
                user[0] = realm1.where(User.class).findFirst();
            });
        } finally {
            if(realm != null) {
                realm.close();
            }
        }
        return user[0];
    }

在这里,我的情况是发生此错误的地方: -

if/else

我无法理解如何解决这个问题,任何指针都会非常感激。

0 个答案:

没有答案