Xamarin.Essentials:PreferencesXamarin.Essentials: Preferences

Preferences クラスを使用すると、アプリケーションのユーザー設定をキー/値ストアに保存できます。The Preferences class helps to store application preferences in a key/value store.

作業開始Get started

この API の使用を始めるには、Xamarin.Essentials の概要ガイドを読み、ライブラリが正しくインストールされてプロジェクトに設定されていることを確認してください。To start using this API, read the getting started guide for Xamarin.Essentials to ensure the library is properly installed and set up in your projects.

Preferences の使用Using Preferences

自分のクラスに Xamarin.Essentials への参照を追加します。Add a reference to Xamarin.Essentials in your class:

using Xamarin.Essentials;

特定の "キー" の値をユーザー設定に保存するには:To save a value for a given key in preferences:

Preferences.Set("my_key", "my_value");

ユーザー設定の値、または設定されていない場合は既定値を取得するには:To retrieve a value from preferences or a default if not set:

var myValue = Preferences.Get("my_key", "default_value");

ユーザー設定から "キー" を削除するには:To remove the key from preferences:


すべてのユーザー設定を削除するには:To remove all preferences:


これらのメソッドだけでなく、省略可能な sharedName を使用してユーザー設定用の追加コンテナーを作成できます。In addition to these methods each take in an optional sharedName that can be used to create additional containers for preference. 以下のプラットフォームの実装の詳細をご覧ください。Read the platform implementation specifics below.

サポートされているデータ型Supported Data Types

Preferences では次のデータ型がサポートされています。The following data types are supported in Preferences:

  • boolbool
  • doubledouble
  • intint
  • floatfloat
  • longlong
  • stringstring
  • DateTimeDateTime

実装の詳細Implementation Details

DateTime の値は DateTime クラスによって定義された 2 つのメソッドを使用して 64 ビット バイナリ (long 型整数) 形式で格納されます。ToBinary メソッドを使用して DateTime の値がエンコードされ、FromBinary メソッドが値をデコードします。Values of DateTime are stored in a 64-bit binary (long integer) format using two methods defined by the DateTime class: The ToBinary method is used to encode the DateTime value, and the FromBinary method decodes the value. 世界協定時刻 (UTC) 値ではない DateTime が格納されているときに値をデコードするために行われる可能性がある調整については、これらのメソッドのドキュメントをご覧ください。See the documentation of these methods for adjustments that might be made to decoded values when a DateTime is stored that is not a Coordinated Universal Time (UTC) value.

プラットフォームの実装の詳細Platform Implementation Specifics

すべてのデータは共有ユーザー設定に格納されます。All data is stored into Shared Preferences. sharedName が指定されていない場合は既定の共有ユーザー設定が使用され、指定されている場合はその名前を使用してプライベート共有ユーザー設定が取得されます。If no sharedName is specified the default shared preferences are used, else the name is used to get a private shared preferences with the specified name.


アプリケーションをアンインストールすると、すべての "ユーザー設定" が削除されます。Uninstalling the application will cause all Preferences to be removed. これには例外が 1 つあり、Android 6.0 (API レベル 23) 以降で実行されていて自動バックアップを使用しているアプリの場合です。There is one exception to this, which for apps that target and run on Android 6.0 (API level 23) or later that are using Auto Backup. この機能は既定で有効にされて、__共有ユーザー設定__などのアプリ データを保持し、Preferences API はそれを利用します。This feature is on by default and preserves app data including Shared Preferences, which is what the Preferences API utilizes. この機能は、Google のドキュメントに従って無効にできます。You can disable this by following Google's documentation.


文字列を格納するとき、この API では少量のテキストを格納することが想定されています。When storing a string, this API is intended to store small amounts of text. 大量のテキストを格納するためにこれを使用しようとすると、パフォーマンスが低下する可能性があります。Performance may be subpar if you try to use it to store large amounts of text.


他の Xamarin ビデオは、Channel 9 および YouTube でご覧いただけます。Find more Xamarin videos on Channel 9 and YouTube.