Realm实例未关闭Activity#onDestroy

时间:2017-08-02 14:06:09

标签: android multithreading android-activity realm

我跟随realm documentation管理领域实例,在每个活动中我使用相同的模式 OnDestroy如果总是返回Realm打开,当我打开下一个activty时,本地Instance计数返回已经打开的RealmInstances的数量

例如:

SplashActivity#onCreate - >本地实例计数= 1

FirstActivitiy#onCreate - >本地实例数= 2

SecondActivity#onCreate - >本地实例数= 3

每个Activity都会不断增加。任何人都知道为什么该活动的领域实例未在onDestroy上关闭?

我甚至试图在关闭它之后将领域设置为null,但它并没有改变实例计数器。

这是我用于测试的代码:

 protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.splash_activity);
    realm = Realm.getDefaultInstance();
 }

 protected void onDestroy() {
    super.onDestroy();
    Log.e(TAG, "ON DESTROY");
    realm.close();
    if (realm.isClosed()) {
        Log.e(TAG, "REALM IS CLOSED");
    } else {
        Log.e(TAG, "REALM IS OPENED");
    }
}

1 个答案:

答案 0 :(得分:0)

正如我猜的那样,您打开新的Activity而不关闭当前的Activity

如果我是对的,您当前活动的onDestroy活动将无法运作。在打开新活动之前,您应该finish()当前活动,或者您可以在代码中编写另一个活动事件。因为关闭活动可能会导致未来案件出现问题。也许这可以帮助您找到另一个活动事件: Android Activity LifeCycle