【发布时间】:2023-04-01 03:48:01
【问题描述】:
我正在关注realm documentation 来管理领域实例,在每个活动中我都使用相同的模式 OnDestroy 的 if 总是返回 Realm 已打开,当我打开下一个活动时,本地实例计数返回已打开的 RealmInstance 数
例如:
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");
}
}
【问题讨论】:
-
您是否就上述活动致电
finish()? -
是的,我总是调用finish()。调用了 Ondestroy,但打开了 Realm 实例
标签: android multithreading android-activity realm