小编Kan*_*aja的帖子

领域 - 如何使用异步事务关闭领域实例

每当我运行异步事务时,我都有理解关闭Realm实例的好习惯.

在我的应用程序中,我有很多控制器,我没有从活动中传入Realm实例,而是每次需要时都会创建一个新的控制器,并在工作完成后立即关闭它.

但是最近我发现它无法正常工作,如果我在运行异步事务时关闭领域实例.

Realm cacheRealm = RealmDelegate.getCacheRealm();

cacheRealm.executeTransaction(realm -> {
    doSomeWork(response);
    realm.copyToRealmOrUpdate(response);
}, callback);
cacheRealm.close();
Run Code Online (Sandbox Code Playgroud)

上面的代码有一个大问题,即回调永远不会启动,因为我在事务完成之前关闭了realm实例.

因此,我不确定我应该如何处理这种情况.我是否应该将Realm对象的实例从活动或片段传递到每个控制器,并仅在那里处理关闭领域实例?或者也许还有其他更优雅的解决方案来解决这个问题?

另外我想知道的是,如果我不关闭Realm数据库会发生什么,有没有办法检查Realm的所有实例是否已经关闭?

android asynchronous realm

8
推荐指数
1
解决办法
4924
查看次数

如何将SpannableString写入parcel?

在我的应用程序中,我有一个包含很少SpannableString对象的对话 因为这是对话框,所以我需要能够在用户离开应用程序时存储它并稍后再返回它.

但问题是如何写入SpannableString包裹?

string android parcelable spannablestring

5
推荐指数
1
解决办法
1359
查看次数