安装包 io.realm
类 DynamicRealm.Callback
- java.lang.Object
-
- io.realm.BaseRealm.InstanceCallback< DynamicRealm >
-
- io.realm.DynamicRealm.Callback
-
- 封装类:
- DynamicRealm
公共抽象静态类DynamicRealm.Callback扩展了 io.realm.BaseRealm.InstanceCallback< DynamicRealm >
在报告使用Realm.getInstanceAsync(RealmConfiguration, Realm.Callback)
或DynamicRealm.getInstanceAsync(RealmConfiguration, DynamicRealm.Callback)
异步加载 Realm 的结果时使用的回调。在进程中创建第一个 Realm 实例之前,需要完成一些初始化工作,例如创建或验证模式、需要时运行迁移、复制资产文件(如果提供了
RealmConfiguration.Builder.assetFile(String)
)以及执行RealmConfiguration.Builder.initialData(Realm.Transaction)
如果需要)。 此工作可能需要一些时间,并会阻塞调用者线程一段时间。 为避免getInstance()
阻塞主线程,可以改用getInstanceAsync()
在背景线程中执行初始化工作,并将 Realm 实例传递给调用者线程。一般来说,此方法在用户界面线程上最有用,因为应尽可能少地阻止该线程。 在任何其他事件循环线程或其他不支持回调的线程上,使用标准
getInstance()
应该没问题。以下是在应用程序启动第一个 Activity 时使用
getInstanceAsync()
的示例:公共类 MainActivity 扩展了活动 { 私有 Realm 域 = null;私有 RealmAsyncTask realmAsyncTask; private static RealmConfiguration config = new RealmConfiguration.Builder() .schema(42).migration(new MyMigration()) // 可能导致冗长的迁移 .build(); \@Override protected void onCreate(Bundle SavedInstanceState) { Super.onCreate(savedInstanceState); setContentView(R.layout.layout_main); realmAsyncTask = Realm.getInstanceAsync(config, new Callback() { \@Override public void onSuccess(Realm realm) { if (isDestroyed()) { // 如果活动被销毁,则应立即关闭 Realm 实例以避免泄漏。 // 或者在 onDestroy() 中调用 realmAsyncTask.cancel() 来停止回调传递。 realm.close(); } else { MainActivity.this.realm = realm; // 删除微调器并启动真正的用户界面。 } } }); // 在回调返回的 Realm 实例之前显示一个微调器。 }\@Override protected void onDestroy() { super.onDestroy(); if (realm != null) { realm.close(); realm = null; } else { // 在调用 getInstanceAsync 的线程上调用 cancel() 以停止回调传递。// 否则,您需要在 onSuccess() 中检查活动是否被销毁以正确关闭。 realmAsyncTask.cancel(); } } }
-
-
方法详细信息
-
onSuccess
公共抽象无效 onSuccess( DynamicRealm 域)
将 Realm 实例传递给调用者线程。- 指定者:
onSuccess
课堂上io.realm.BaseRealm.InstanceCallback<DynamicRealm>
- 参数:
realm
- 调用者线程的 Realm 实例。
-
onError
public void onError (可抛出异常)
创建 Realm 实例到调用者线程时,会发生传递错误。 默认实现将在调用者线程上引发异常。- 覆盖:
onError
课堂上io.realm.BaseRealm.InstanceCallback<DynamicRealm>
- 参数:
exception
— 在背景线程上初始化 Realm 时发生。
-
-