2017-08-02 38 views
0

我正在關注realm documentation來管理領域實例,對每個活動我使用相同的模式 OnDestroy的如果總是返回,那麼打開Realm,並且當我打開下一個活動時,本地實例count返回已被打開不關閉的領域實例活動#onDestroy

例如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"); 
    } 
} 
+0

你調用'完成()'在上述活動? – EpicPandaForce

+0

是的,我總是打電話給finish()。 Ondestroy被調用,但是Realm實例被打開 – julioribeiro

回答

0

正如我猜,你打開你的新Activity而不關閉當前Activity

如果我是正確的,你當前活動的onDestroy事件將無法工作。在打開新的應用程序之前,您應該使用當前的活動finish()或者您可以編寫代碼另一個活動事件。因爲關閉一項活動可能會導致未來案件的問題。也許這可以幫助你找到另一種活動事件: Android Activity LifeCycle

+0

我總是調用finish()。 Ondestroy被調用,但Realm實例已打開 – julioribeiro