パッケージ io.realm

クラス RealmConfiguration.Builder

  • クラスを囲みます。
    RealmConfiguration

    public static class RealmConfiguration.Builder
    extends Object
    RealmConfiguration.Builder は、RealmConfiguration のインスタンスをスムーズに構築するために使用されます。
    • コンストラクターの詳細

      • ビルダ

        public Builder()
        RealmConfiguration のビルダのインスタンスを作成します。

        これにより、Realm ファイルの保存にアプリ独自の内部ディレクトリが使用されます。 これには追加の権限は必要ありません。 デフォルトのロケーションは/data/data/<packagename>/filesですが、Android のベンダーの実装によって変更される可能性があります。

    • メソッドの詳細

      • ディレクトリ

        public RealmConfiguration.Builderdirectoryファイルディレクトリ)
        Realm ファイルを保存するディレクトリを指定します。 デフォルト値はcontext.getFilesDir()です。 ディレクトリが存在しない場合は、作成されます。
        パラメーター:
        directory - Realm ファイルを保存するディレクトリ。 ディレクトリは書込み可能である必要があります。
        次の例外がスローされます。
        IllegalArgumentException - directoryが null、書込み可能ではなく、 ファイルの場合。
      • encryptionKey

        public RealmConfiguration.Builder encryptionKey(byte[] キー)
        Realm ファイルの暗号化と復号化に使用される 64 バイト キーを設定します。 Realm ファイルの暗号化と復号化に使用される64バイト キーを設定します。
      • schemaVersion

        public RealmConfiguration.Builder schemaVersion(long schemaVersion)
        Realm のスキーマ バージョンを設定します。 This must be equal to or higher than the schema version of the existing Realm file, if any. スキーマ バージョンが既存の Realm よりも高い場合は、移行が必要です。

        移行コードが指定されていない場合、Realm はRealmMigrationNeededExceptionをスローします。

        以下も参照してください。
        migration(RealmMigration)
      • deleteRealmIfMigrationMoneded

        public RealmConfiguration.Builder deleteRealmIfMigrationMoneded()
        これを設定すると、移行例外の処理方法の動作が変更されます。 RealmMigrationNeededExceptionをスローする代わりに、ディスク上の Realm がクリアされ、新しい Realm スキーマで再作成されます。

        これは、提供されたアセット ファイルが移行で削除されるため、 assetFile(String)を呼び出して同時にアセット ファイルを存在するように構成することはできません。

        警告。 これにより、データが失われます。

        次の例外がスローされます。
        IllegalStateException - 以前にassetFile(String)を呼び出してアセット ファイルを使用するように構成されている場合。
      • インメモリ

        public RealmConfiguration.Builder inMemory()
        これを設定すると、ディスクに保存されるのではなく、メモリ内 Realm が作成されます。 メモリが不足している場合は、インメモリ Realm でもディスク領域が使用される可能性がありますが、Realm が閉じられると、インメモリ Realm によって作成されたすべてのファイルが削除されます。

        メモリ内 Realm は永続化されないため、データが最後に表示される限り、特定の名前のメモリ内 Realm オブジェクトへの閉じられていない参照を少なくとも 1 つ保持する必要があることに注意してください。

      • modules

        public RealmConfiguration.Builderモジュール( Object baseModule、 Object ... additionalModules)
        既存のモジュールを 1 つ以上のRealmModuleに置き換えます。 このメソッドを使用すると、この Realm の現在のスキーマが、提供されている モジュールによって定義されているスキーマに置き換えられます。

        プロジェクト内のすべての Realm クラス(ただし、依存関係は含まない)を含むデフォルトの Realm モジュールへの参照は、 Realm.getDefaultModule()を使用して見つけることができます。 アプリプロジェクトとライブラリの依存関係のスキーマを組み合わせるには、次のコードを使用します。

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

        パラメーター:
        baseModule - 最初の Realm モジュール(必須)。
        additionalModules - 追加の Realm モジュール
        次の例外がスローされます。
        IllegalArgumentException - いずれのモジュールにもRealmModuleアノテーションがない場合。
        以下も参照してください。
        Realm.getDefaultModule()
      • addModule

        public final RealmConfiguration.Builder addModule​(Object module)
        修正: 一時的に表示される DEBUG メソッド。 無条件にモジュールを追加します。 すでに定義されているモジュールにモジュールを追加します。
      • initialData

        public RealmConfiguration.Builder initialData ( Realm.Transaction transaction)
        Realmに初期データを設定します。 このトランザクションは、データベース ファイルが作成されているとき、またはdeleteRealmIfMigrationNeeded()が設定されている場合に データを移行しているときにのみ実行されます。
        パラメーター:
        transaction - 実行するトランザクション。
      • assetFile

        public RealmConfiguration.BuilderassetFilestring
        指定されたアセット ファイル パスから Realm ファイルをコピーします。

        Realm を初めて開くと、空のファイルが作成される代わりに、提供されたアセット ファイルから Realm ファイルがコピーされ、使用されます。

        これをdeleteRealmIfMigrationNeeded()と組み合わせることはできません。これを行うと、コピーされたファイルが削除されるだけでした。

        警告: これは長時間の操作になる可能性があるため、理想的にはバックグラウンド スレッドで実行する必要があります。

        パラメーター:
        assetFile - アセット データベース ファイルへのパス。
        次の例外がスローされます。
        IllegalStateException - deleteRealmIfMigrationNeeded()を呼び出してスキーマをクリアするように構成されている場合。
      • readOnly

        public RealmConfiguration.Builder readOnly()
        これを設定すると、Realm は読み取り専用になり、この Realm に対して行われたすべての書込みトランザクションが失敗し、 IllegalStateExceptionが返されます。

        これは特に、 initialData(Realm.Transaction)が読み取り専用 Realm と組み合わせて動作せず、これを設定するとIllegalStateExceptionがスローされることを意味します。

        Realm を読み取りとしてマークすると、このプロセス内の Realm にのみ適用されます。 他のプロセスは引き続き Realm に書込むことができます。
      • compactOnLaunch

        public RealmConfiguration.Builder compactOnLaunch()
        これを設定すると、Realm ファイルが大きくなりすぎて有効な量のスペースが復元される場合、Realm は Realm ファイルを圧縮します。 詳細については、 DefaultCompactOnLaunchCallbackを参照してください。
      • compactOnLaunch

        public RealmConfiguration.Builder compactOnLaunch( CompactOnLaunchCallback compactOnLauth)
        Realm ファイルをユーザーに返す前に圧縮する必要があるかどうかを決定するためにこれを設定します。 合計ファイルサイズ(データ + 空き領域)とファイル内のデータによって使用されるバイト数が渡されます。
        パラメーター:
        compactOnLaunch - プロセスの有効期間中に Realm を初めて開き、ユーザーに返される前に圧縮する必要があるかどうかを判断するときに呼び出されるコールバック。 合計ファイルサイズ(データ + 空き領域)とファイル内のデータによって使用されるバイト数が渡されます。
      • maxNumberOfActiveVersions

        public RealmConfiguration.Builder maxNumberOfActiveVersions(long number)
        追加のデータ書込みを試みるときにIllegalStateExceptionがスローされる前に、Realm ファイル内のライブ バージョンの最大数を設定します。

        Realm は、多くの異なるバージョンの Realm オブジェクトを同時に処理することができます。 これは例えば データが ファイルに書き込まれているときに、多数の異なるスレッドで Realm を開いているか、オブジェクトをフリーズしている場合は、 が発生します。

        通常の状況では、これは問題ではありませんが、アクティブなバージョンの数が大きくなりすぎると、ディスク上のファイルサイズに悪影響が生じます。 したがって、このパラメーターを設定すると、Realm が非常に大きくなる可能性のある Realm の使用を防ぐために使用できます。

        パラメーター:
        number - 例外がスローされるまでのアクティブなバージョンの最大数。
        以下も参照してください。
        FAQ
      • allowQueriesOnUiThread

        public RealmConfiguration.Builder allowQueriesOnUiThread(ブール値 allowQueriesOnUiThread)
        UI スレッドからRealmQueryを起動できるかどうかを設定します。

        デフォルトでは、Realm はメイン スレッドでのクエリを許可します。 ただし、そうすると、アプリケーションのフレームワークが低下したり、ARN が発生したりする可能性があります。 クエリを非 UI スレッドに転送するか、代わりにRealmQuery.findAllAsync()またはRealmQuery.findFirstAsync()を使用することをお勧めします。

      • 構築

        public RealmConfiguration build()
        ビルダ パラメータに基づいて RealmConfiguration を作成します。
        次の値を返します。
        RealmConfigurationを作成しました。