我跟随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");
}
}
答案 0 :(得分:0)
正如我猜的那样,您打开新的Activity
而不关闭当前的Activity
。
如果我是对的,您当前活动的onDestroy
活动将无法运作。在打开新活动之前,您应该finish()
当前活动,或者您可以在代码中编写另一个活动事件。因为关闭活动可能会导致未来案件出现问题。也许这可以帮助您找到另一个活动事件:
Android Activity LifeCycle