安装包 io.realm

RealmConfiguration.Builder 类

  • 封装类:
    RealmConfiguration

    public static class RealmConfiguration.Builder
    extends Object
    RealmConfiguration.Builder 用于以流畅的方式构造 RealmConfiguration 的实例。
    • 构造函数详细信息

      • 生成器

        public Builder()
        为 RealmConfiguration 创建 Builder 的实例。

        这将使用应用程序自己的内部目录来存储 Realm 文件。 这不需要任何其他权限。 默认位置为/data/data/<packagename>/files ,但可能会根据 Android 的供应商实现而变化。

    • 方法详细信息

      • 目录

        公共RealmConfiguration.Builder目录(文件目录)
        指定 Realm 文件的保存目录。 默认值为context.getFilesDir() 。 如果该目录不存在,则会创建该目录。
        参数:
        directory - 保存 Realm 文件的目录。 目录必须可写。
        抛出异常:
        IllegalArgumentException - 如果directory为 null,则不可写入或不可写入文件。
      • encryptionKey

        公共RealmConfiguration.Builder加密密钥​(byte[] key)
        设置用于加密和解密 Realm 文件的 64 字节密钥。 设置用于加密和解密 Realm 文件的64字节密钥。
      • inMemory

        public RealmConfiguration.Builder inMemory()
        设置此项将在内存中创建一个 Realm,而不是将其保存到磁盘。 如果内存不足,内存中的 Realm 可能仍会使用磁盘空间,但关闭 Realm 时,内存中的 Realm 创建的所有文件都将被删除。

        请注意,由于内存中的 Realm 不会持久化,因此只要您希望数据持续存在,就必须确保至少保留一个对内存中具有特定名称的 Realm 对象的非关闭引用。

      • 模块

        公共RealmConfiguration.Builder模块( 对象 baseModule, 对象 ... additionalModules)
        用一个或多个RealmModule替换现有模块。 使用此方法会将此 Realm 的当前模式替换为所提供模块定义的模式。

        可以使用Realm.getDefaultModule()找到对包含项目中所有 Realm 类(但不包括依赖项)的默认 Realm 模块的引用。 使用以下代码可将应用项目中的模式与库依赖项相结合:

        builder.modules(Realm.getDefaultMode(), new MyLibraryModule());

        参数:
        baseModule - 第一个 Realm 模块(必需)。
        additionalModules - 附加 Realm 模块
        抛出异常:
        IllegalArgumentException - 如果任何模块没有RealmModule注解。
        另请参阅:
        Realm.getDefaultModule()
      • addModule

        public final RealmConfiguration.Builder addModule​(Object module)
        FIXME:临时可见的 DEBUG 方法。 将无条件添加模块。 将模块添加到已定义的模块中。
      • assetFile

        public RealmConfiguration.Builder assetFile​( String assetFile)
        从给定的资产文件路径复制 Realm 文件。

        首次打开 Realm 时,不会创建空文件,而是会从提供的资产文件中复制并使用 Realm 文件。

        它不能与deleteRealmIfMigrationNeeded()结合使用,因为这样做只会导致复制的文件被删除。

        警告:这可能是一个耗时的操作,最好在后台线程上完成。

        参数:
        assetFile — 资产数据库文件的路径。
        抛出异常:
        IllegalStateException - 如果已配置为通过调用deleteRealmIfMigrationNeeded()来清除其模式。
      • compactOnLaunch

        public RealmConfiguration.Builder compactOnLaunch​( CompactOnLaunchCallback compactOnLaunch)
        设置此项以确定 Realm 文件在返回给用户之前是否应进行压缩。 系统会向其传递总文件大小(数据 + 可用空间)以及文件中数据使用的字节数。
        参数:
        compactOnLaunch - 在进程生命周期中首次打开 Realm 时调用的回调,以确定在将其返回给用户之前是否应进行压缩。 系统会向其传递总文件大小(数据 + 可用空间)以及文件中数据使用的字节数。
      • maxNumberOfActiveVersions

        public RealmConfiguration.Builder maxNumberOfActiveVersions​(long number)
        设置在尝试写入更多数据时抛出IllegalStateException之前 Realm 文件中活动版本的最大数量。

        Realm 能够同时处理许多不同版本的 Realm 对象。 这可以例如 如果您在许多不同的线程上打开了一个 Realm 或在将数据写入文件时冻结了对象,则会发生这种情况。

        在正常情况下,这不是问题,但如果活动版本的数量过多,则会对磁盘上的文件大小产生负面影响。 因此,设置此参数可用于防止使用可能导致 Realm 过大的 Realm。

        参数:
        number - 引发异常之前的最大活动版本数。
        另请参阅:
        FAQ