Docs 菜单
Docs 主页
/ /
Atlas Device SDKs
/ /

配置同步 Realm — Java SDK

在此页面上

  • 先决条件
  • 同步 Realm
  • 同步 Realm 配置
  • 离线时打开同步 Realm
  • 关闭 Realm

从客户端访问同步 Realm 之前,您必须:

  1. 在 App Services 用户界面中启用同步

  2. 初始化应用

  3. 通过将以下内容添加到应用程序级build.gradle文件的顶层,在应用程序中启用 Sync:

    realm { syncEnabled = true }
  4. 对客户端项目中的用户进行身份验证

同步 Realm 使用Atlas Device Sync在客户端设备和同步数据源中存储数据。打开同步 Realm 的工作方式与打开本地 Realm 完全相同,只是您使用 SyncConfiguration来自定义同步 Realm 的设置。

要配置 Realm 的设置,请使用 SyncConfiguration.Builder 创建SyncConfiguration

要打开同步 Realm,请调用getInstanceAsync()并传入SyncConfiguration对象。

当您的应用程序使用“Flexible Sync”时,请使用 SyncConfiguration.InitialFlexibleSyncSubscriptions() 实例调用 initialSubscriptions() 同步配置构建器方法以打开同步 Realm。在configure() 方法中,使用名称实例化UnmanagedSubscription add(),并使用 Subscription.create() 进行查询。将新订阅传递给 MutableSubscriptionSet 参数的 方法,将其添加到您的订阅中:

提示

另请参阅:

有关订阅的更多信息,请参阅订阅可查询字段。

重要

UI 线程上的同步读写

默认情况下,只能使用异步事务在应用程序的用户界面线程中读取或写入域。也就是说,除非您明确允许使用同步方法,否则您只能在 Android 应用程序的主线程中使用名称以单词 Async 结尾的 Realm 方法。

此限制是为了应用程序用户的利益:在 UI 线程上执行读写操作,可能导致 UI 交互无响应或速度缓慢,所以通常来说,最好以异步方式或在后台线程中处理这些操作。但是,如果应用程序需要在 UI 线程上使用同步 Realm 读取或写入,则可以通过以下 SyncConfiguration 选项明确支持使用同步方法:

您可以使用与在线打开同步域完全相同的语法在离线时打开同步域 。并非所有 SDK 都遵循这种模式,因此跨平台开发者应查阅每个 SDK 的文档以了解更多信息。

请务必记住在使用 Realm 实例完成后调用close()方法以释放资源。忽视关闭 Realm 可能会导致OutOfMemoryError

← 在设备之间同步数据 - Java SDK