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 はネイティブで格納されるため、設定をネイティブ システム設定に統合できます。 プラットフォームのドキュメントに従って、プラットフォームと統合します。
- Apple: iOS 設定バンドルの実装
- Android:設定画面の概要
プラットフォームによる違い
このセクションでは、preferences API のプラットフォーム固有の違いについて説明します。
すべてのデータは Shared Preferences に格納されます。 sharedName
に何も指定されていない場合は、既定の Shared Preferences が使用されます。 それ以外の場合、その名前は、指定された名前の private Shared Preferences を取得するために使用されます。
永続化
アプリケーションをアンインストールすると、自動バックアップ機能の使用中に、Android 6.0 (API レベル 23) 以降でアプリが実行される場合を除き、すべての preferences が削除されます。 この機能は既定で有効になっており、Preferences API が使用する Shared Preferences などのアプリ データは保持されます。 これを無効にするには、Google の自動バックアップのドキュメントに従ってください。
制限事項
API は少量のテキストを保存するように設計されているため、大量のテキストを保存するとパフォーマンスに影響する可能性があります。
.NET MAUI