SyncConfiguration.Builder 类
在此页面上
io.realm.mongodb.sync
封装类:
Builder 用于以流畅的方式构造 SyncConfiguration 的实例。
构造函数
方法摘要
修饰符和类型 | 方法和说明 |
---|---|
设置是否允许在用户界面线程中使用 | |
设置是否允许从用户界面线程调用Realm.executeTransaction 。 | |
build () 根据构建器参数创建 RealmConfiguration。 | |
设置发生客户端重置时的处理程序。 | |
设置此项以确定 Realm 文件在返回给用户之前是否应进行压缩。 | |
如果 Realm 文件变得太大并且可以恢复大量空间,设置此项将导致 Realm 压缩 Realm 文件。 | |
设置用于加密和解密 Realm 文件的 io.realm.Realm#ENCRYPTION_KEY_LENGTH 字节密钥。 | |
设置此配置使用的错误处理程序。 | |
设置用于从 Realm 对象创建协程流的FlowFactory 。 | |
inMemory () 设置此项将在内存中创建一个 Realm,而不是将其保存到磁盘。 | |
在io.realm.Realm中设置初始数据。 | |
设置在出现 IllegalStateException 之前 Realm 文件中实时版本的最大数量 尝试写入更多数据时引发此错误。 | |
用一个或多个RealmModule替换现有模块。 | |
用一个或多个RealmModule替换现有模块。 | |
readOnly () 设置此项将导致 Realm 变为只读,并且针对此 Realm 进行的所有写事务都将失败,并 抛出 IllegalStateException 。 | |
设置用于从 Realm 对象创建 Rx Observables 的RxObservableFactory 。 | |
设置 Realm 的模式版本。 | |
设置发生客户端重置时的处理程序。 | |
设置发生客户端重置时的处理程序。 | |
设置此项将导致 Realm 在首次打开 Realm 时从服务器下载所有已知更改。 | |
设置此项将导致 Realm 在首次打开 Realm 时从服务器下载所有已知更改。 |
继承方法
从类 java.lang.Object 继承的方法 :
getClass
、hashCode
、equals
、clone
、toString
、notify
、notifyAll
、wait
、wait
、wait
、finalize
构造函数详细信息
使用给定用户为 Flexible Sync SyncConfiguration创建构建器的实例。 参数
提示另请参阅:
|
使用给定的用户和分区值,为基于分区的同步SyncConfiguration创建构建器的实例。 参数
|
方法详细信息
addModule
将模块添加到已定义的模块中。 |
allowQueriesOnUiThread
设置是否允许在用户界面线程中使用 默认情况下,Realm 允许在主线程上进行查询。 但是,这样做可能会导致应用程序掉帧,甚至出现 ANR。 我们建议将查询转移到非用户界面线程,或者使用RealmQuery.findAllAsync()或RealmQuery.findFirstAsync() 。 |
allowWritesOnUiThread
设置是否允许从用户界面线程调用Realm.executeTransaction 。 警告:Realm 不允许在主线程上运行同步事务,除非用户明确选择使用此方法。 我们建议将对 |
assetFile
首次打开 Realm 时,不会创建空文件,而是从提供的资产文件中复制并使用 Realm 文件。这可用于使用数据预填充 Realm,因此不会从服务器下载。 提供的 Realm 文件必须是给定用户的有效同步 Realm,并且必须是使用Realm.writeCopyTo(File)创建的 API。 警告:这可能是一个耗时的操作,最好在后台线程上完成。 参数
抛出异常
|
构建
public SyncConfiguration build () |
---|
clientResetHandler
设置发生客户端重置时的处理程序。 如果未设置处理程序,则在发生客户端重置时会记录错误。 参数
|
compactOnLaunch
设置此项以确定 Realm 文件在返回给用户之前是否应进行压缩。 系统会向其传递总文件大小(数据 + 可用空间)以及文件中数据使用的字节数。 参数
|
public SyncConfiguration.Builder compactOnLaunch () |
---|
如果 Realm 文件变得太大并且可以恢复大量空间,设置此项将导致 Realm 压缩 Realm 文件。 有关详细信息,请参阅DefaultCompactOnLaunchCallback 。 |
encryptionKey
设置用于加密和解密 Realm 文件的 io.realm.Realm#ENCRYPTION_KEY_LENGTH 字节密钥。 参数
抛出异常
|
errorHandler
设置此配置使用的错误处理程序。只有未由定义的 参数
抛出异常
|
flowFactory
inMemory
public SyncConfiguration.Builder inMemory () |
---|
设置此项将在内存中创建一个 Realm,而不是将其保存到磁盘。 如果内存不足,内存中的 Realm 可能仍会使用磁盘空间,但关闭 Realm 时,内存中的 Realm 创建的所有文件都将被删除。请注意,由于内存中的 Realm 不会持久化,因此您必须确保只要您希望数据持续存在,就至少保留一个对内存中具有特定名称的 Realm 对象的非关闭引用。 |
初始数据
在io.realm.Realm中设置初始数据。 此事务仅在第一次打开(创建)Realm 文件时执行,或者在设置了RealmConfiguration.Builder.deleteRealmIfMigrationNeeded()的情况下迁移数据时执行。 参数
|
首次订阅
为 io.subscription 设置初始Subscription 。 域。 Realm 。 这只会在第一次打开Realm 文件(以及创建文件)时执行。 如果还配置了waitForInitialRemoteData() ,则在所有订阅数据也上传后, 域文件才会完全打开。 参数
|
maxNumberOfActiveVersions
设置在出现 IllegalStateException 之前 Realm 文件中实时版本的最大数量 尝试写入更多数据时引发此错误。 Realm 能够同时处理许多不同版本的 Realm 对象。 如果您在许多不同的线程上打开了 Realm 或在将数据写入文件时冻结了对象,则可能会发生这种情况。 在正常情况下,这不是问题,但如果活动版本的数量过多,则会对磁盘上的文件大小产生负面影响。 因此,设置此参数可用于防止使用可能导致 Realm 过大的 Realm。 请注意,当此设备上集成了来自其他设备的更改时,版本号也会增加,因此活动版本的数量还将取决于写入同一 Realm 的其他设备正在执行的操作。 参数
|
模块
用一个或多个RealmModule替换现有模块。 使用此方法会将此 Realm 的当前模式替换为所提供模块定义的模式。 可以使用Realm.getDefaultModule()找到对包含项目中所有 Realm 类(但不包括依赖项)的默认 Realm 模块的引用。 使用以下代码可将应用项目中的模式与库依赖项相结合:
参数
抛出异常
|
用一个或多个RealmModule替换现有模块。 使用此方法会将此 Realm 的当前模式替换为所提供模块定义的模式。 可以使用Realm.getDefaultModule()找到对包含项目中所有 Realm 类(但不包括依赖项)的默认 Realm 模块的引用。 使用以下代码可将应用项目中的模式与库依赖项相结合:
参数
抛出异常
|
名称
设置此设备上 Realm 文件的文件名。 参数
|
只读
public SyncConfiguration.Builder readOnly () |
---|
设置此项将导致 Realm 变为只读,并且针对此 Realm 进行的所有写事务都将失败,并 抛出 IllegalStateException 。 这尤其意味着, initialData(Realm.Transaction) 不能与只读 Realm 结合使用,设置此项将导致 IllegalStateException 被抛出。 将 Realm 标记为只读会应用于此进程中的 Realm。 其他进程和设备仍然可以写入 Realm。 |
rxFactory
设置用于从 Realm 对象创建 Rx Observables 的RxObservableFactory 。 默认工厂是RealmObservableFactory 。 参数
|
模式版本
设置 Realm 的模式版本。Synced Realm 仅支持附加模式更改,无需手动迁移即可应用这些更改。 模式版本仅用于指示底层存储层删除或添加索引。 如果提供的模式版本与 Realm 文件中的版本不同,则将重新计算这些版本。 警告:不能保证此处插入的值与Realm.getVersion()返回的值相同。 由于同步 Realm 的性质,该值可能更高也可能更低。
参数
抛出异常
|
syncClientResetStrategy
设置发生客户端重置时的处理程序。 如果未设置处理程序,则在发生客户端重置时会记录错误。 此策略仅适用于使用基于分区的同步的同步 Realm。 使用 Flexible Sync 的 Realm 目前仅支持syncClientResetStrategy(ManuallyRecoverUnsyncedChangesStrategy) 。 参数
|
设置发生客户端重置时的处理程序。 如果未设置处理程序,则在发生客户端重置时会记录错误。 参数
|
urlPrefix
在启动与 MongoDB Realm 的同步连接的 WebSocket 请求中添加到路径之前的前缀。 指定的值必须与服务器的配置匹配,否则设备将无法创建连接。 此值为可选值,仅应在特定防火墙规则需要时设置。 参数
|
waitForInitialRemoteData
设置此项将导致 Realm 在首次打开 Realm 时从服务器下载所有已知更改。 在下载所有数据之前,Realm 不会打开。 这意味着,如果设备处于离线状态,则 Realm 将无法打开。由于下载所有更改可能是一项冗长的操作,可能会阻塞用户界面线程,因此启用了此设置的 Realm 只能在后台线程上打开,或者使用Realm.getInstanceAsync(RealmConfiguration,用户界面线程上的Realm.Callback) 。 此检查仅在首次创建Realm时执行。 如果您想确保Realm具有最新更改,请使用SyncSession.downloadAllServerChanges() 。 参数
|
设置此项将导致 Realm 在首次打开 Realm 时从服务器下载所有已知更改。 在下载所有数据之前,Realm 不会打开。 这意味着,如果设备处于离线状态,则 Realm 将无法打开。由于下载所有更改可能是一项冗长的操作,可能会阻塞用户界面线程,因此启用了此设置的 Realm 只能在后台线程上打开,或者使用Realm.getInstanceAsync(RealmConfiguration,用户界面线程上的Realm.Callback) 。 此检查仅在首次创建Realm时执行。 如果您想确保Realm具有最新更改,请使用SyncSession.downloadAllServerChanges() 。 |