Preferences

サンプルを参照します。 サンプルを参照する

この記事では、.NET マルチプラットフォーム アプリ UI (.NET MAUI) IPreferences インターフェイスを使用する方法について説明します。 このインターフェイスは、アプリの preferences をキーと値のストアに格納するのに役立ちます。

IPreferences インターフェイスの既定の実装は、Preferences.Default プロパティを通じて使用できます。 IPreferences インターフェイスと Preferences クラスはどちらも Microsoft.Maui.Storage 名前空間に含まれています。

ストレージの種類

Preferences は String キーとともに保存されます。 基本設定の値は、次のいずれかのデータ型である必要があります。

DateTime の値は DateTime クラスによって定義された 2 つのメソッドを使用して 64 ビット バイナリ (long 型整数) 形式で格納されます。

  • ToBinary メソッドは、DateTime 値をエンコードするために使用されます。
  • FromBinary メソッドは値をデコードします。

協定世界時 (UTC) 値ではない DateTime が格納されているときに値をデコードするために行われる可能性がある調整については、これらのメソッドのドキュメントを参照してください。

preferences を設定します

Preferences は、Preferences.Set メソッドを呼び出してキーと値を指定することで設定されます。

// Set a string value:
Preferences.Default.Set("first_name", "John");

// Set an numerical value:
Preferences.Default.Set("age", 28);

// Set a boolean value:
Preferences.Default.Set("has_pets", true);

Get preferences

preferences から値を取得するには、基本設定のキーを渡し、キーが存在しない場合は既定値を渡します。

string firstName = Preferences.Default.Get("first_name", "Unknown");
int age = Preferences.Default.Get("age", -1);
bool hasPets = Preferences.Default.Get("has_pets", false);

場合によっては、基本設定のキーに続いて既定値とその型を渡す必要があります。

long value = Preferences.Get("master_date", (long)0);

キーを確認する

preferences にキーが存在するかどうかを確認すると便利な場合があります。 Get ではキーが存在しない場合に規定値を設定していますが、キーが存在してもキーの値が規定値と一致する場合があります。 そのため、キーが存在しないことを示すインジケーターとして既定値に依存することはできません。 キーがあるかどうかを判断するには、ContainsKey メソッドを使用します。

bool hasKey = Preferences.Default.ContainsKey("my_key");

1 つまたはすべてのキーを削除する

Remove メソッドを 使用して、preferences から特定のキーを削除します。

Preferences.Default.Remove("first_name");

すべてのキーを削除するには、Clear メソッドを使用します。

Preferences.Default.Clear();

共有キー

アプリによって保存された preferences は、アプリにのみ表示されます。 ただし、他の拡張機能やウォッチ アプリで使用できる共有設定を作成することもできます。 基本設定を設定、削除、または取得するときに、オプションの文字列パラメーターを指定して、基本設定が格納されているコンテナーの名前を指定できます。

次のメソッドは、sharedName という名前の文字列パラメータを受け取ります。

  • Preferences.Set
  • Preferences.Get
  • Preferences.Remove
  • Preferences.Clear

重要

共有の preferences には動作固有の実装が含まれるので、プラットフォーム実装の詳細を参照してください。

システム設定と統合する

Preferences はネイティブで格納されるため、設定をネイティブ システム設定に統合できます。 プラットフォームのドキュメントに従って、プラットフォームと統合します。

プラットフォームによる違い

このセクションでは、preferences API のプラットフォーム固有の違いについて説明します。

すべてのデータは Shared Preferences に格納されます。 sharedName に何も指定されていない場合は、既定の Shared Preferences が使用されます。 それ以外の場合、その名前は、指定された名前の private Shared Preferences を取得するために使用されます。

永続化

アプリケーションをアンインストールすると、自動バックアップ機能の使用中に、Android 6.0 (API レベル 23) 以降でアプリが実行される場合を除き、すべての preferences が削除されます。 この機能は既定で有効になっており、Preferences API が使用する Shared Preferences などのアプリ データは保持されます。 これを無効にするには、Google の自動バックアップのドキュメントに従ってください。

制限事項

API は少量のテキストを保存するように設計されているため、大量のテキストを保存するとパフォーマンスに影響する可能性があります。