Preferences クラス

定義

ユーザー設定データの階層コレクション内のノード。

[Android.Runtime.Register("java/util/prefs/Preferences", DoNotGenerateAcw=true)]
public abstract class Preferences : Java.Lang.Object
[<Android.Runtime.Register("java/util/prefs/Preferences", DoNotGenerateAcw=true)>]
type Preferences = class
    inherit Object
継承
Preferences
派生
属性

注釈

ユーザー設定データの階層コレクション内のノード。 このクラスを使用すると、アプリケーションはユーザーとシステムの基本設定と構成データを格納および取得できます。 このデータは、実装に依存するバッキング ストアに永続的に格納されます。 一般的な実装には、フラット ファイル、OS 固有のレジストリ、ディレクトリ サーバー、SQL データベースなどがあります。 このクラスのユーザーは、バッキング ストアの詳細に関心を持つ必要はありません。

ユーザー設定用とシステム環境設定用の 2 つの個別の基本設定ノードツリーがあります。 各ユーザーには個別のユーザー設定ツリーがあり、特定のシステム内のすべてのユーザーが同じシステム基本設定ツリーを共有します。 "user" と "system" の正確な説明は、実装によって異なります。 ユーザー設定ツリーに格納される一般的な情報には、フォントの選択、色の選択、特定のアプリケーションの優先ウィンドウの場所とサイズなどがあります。 システム環境設定ツリーに格納される一般的な情報には、アプリケーションのインストール構成データが含まれる場合があります。

基本設定ツリー内のノードには、階層ファイル システム内のディレクトリと同様の方法で名前が付けられます。 基本設定ツリー内のすべてのノードには、 ノード名 (必ずしも一意ではない)、一意の 絶対パス名、および各先祖に 対する相対 パス名 (それ自体を含む) があります。

ルート ノードには、空の文字列 ("") のノード名があります。 他のすべてのノードには、作成時に指定された任意のノード名があります。 この名前に関する唯一の制限は、空の文字列を使用できず、スラッシュ文字 ('/') を含めることができない点です。

ルート ノードには、 "/"の絶対パス名があります。 ルート ノードの子には、< の絶対パス名があります。ノード名>。 他のすべてのノードの絶対パス名は < です。親の絶対パス名><ノード名>。 すべての絶対パス名はスラッシュ文字で始まる点に注意してください。

ノード n の先祖 a に対する相対パス名は、n の絶対パス名を形成するために、最初のスラッシュ文字 (存在する場合) を削除するために、a の絶対パス名に追加する必要がある単なる文字列です。 注: <ul><li>相対パス名はスラッシュ文字で始まります。 <li>ノードのパス名自体に対する相対パスは空の文字列です。 <li>親を基準とする任意のノードのパス名は、そのノード名です (親を持たないルート ノードを除く)。 <li>ルートに対する相対パス名は、最初のスラッシュ文字が削除された絶対パス名です。 </ul>

最後に、 <ul><li>パス名に複数の連続するスラッシュ文字が含まれていることに注意してください。 <li>ルートの絶対パス名を除くパス名はスラッシュ文字で終わります。 <li>これら 2 つの規則に準拠する文字列は、有効なパス名です。 </ul>

基本設定データを変更するすべてのメソッドは、非同期的に動作することが許可されています。すぐに戻る可能性があり、変更は最終的に永続的なバッキング ストアに反映され、実装に依存する遅延が発生します。 flushメソッドを使用して、バッキング ストアへの更新を同期的に強制できます。 Java仮想マシンを正常に終了しても、保留中の更新が失われるわけではありません。保留中の更新が永続的になるように、終了時に明示的なflush呼び出しは必要ありません

Preferences オブジェクトから基本設定を読み取るメソッドはすべて、呼び出し側が既定値を指定する必要があります。 値が以前に設定されていない場合 、またはバッキング ストアが使用できない場合は、既定値が返されます。 この目的は、バッキング ストアが使用できなくなった場合でも、機能が若干低下しているにもかかわらず、アプリケーションの動作を許可することです。 flushなどのいくつかのメソッドには、バッキング ストアが使用できない場合に動作を妨げるセマンティクスがあります。 通常のアプリケーションでは、これらのメソッドを呼び出す必要はありません。これらのメソッドは、 BackingStoreExceptionをスローするように宣言されているという事実によって識別できます。

このクラスのメソッドは、外部同期を必要とせずに、1 つの JVM 内の複数のスレッドによって同時に呼び出される可能性があり、結果は一部のシリアル実行と同等になります。 このクラスが、同じバッキング ストアにユーザー設定データを格納する 複数の JVM によって 同時に使用される場合、データ ストアは破損しませんが、基本設定データの一貫性に関する他の保証は行われません。

このクラスにはエクスポート/インポート機能が含まれており、ユーザー設定を XML ドキュメントに "エクスポート" し、ユーザー設定を表す XML ドキュメントをシステムに "インポート" することができます。 この機能は、基本設定ツリーのすべてまたは一部をバックアップし、その後バックアップから復元するために使用できます。

XML ドキュメントには、次の DOCTYPE 宣言があります。

{@code
<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
            }

システム URI (http://java.sun.com/dtd/preferences.dtd) は、基本設定をエクスポートまたはインポートするときにアクセス されません 。DTD を一意に識別するための文字列として機能するだけです。これは次のとおりです。

{@code
<?xml version="1.0" encoding="UTF-8"?>

<!-- DTD for a Preferences tree. -->

<!-- The preferences element is at the root of an XML document
                    representing a Preferences tree. -->
<!ELEMENT preferences (root)>

<!-- The preferences element contains an optional version attribute,
                     which specifies version of DTD. -->
<!ATTLIST preferences EXTERNAL_XML_VERSION CDATA "0.0" >

<!-- The root element has a map representing the root's preferences
                    (if any), and one node for each child of the root (if any). -->
<!ELEMENT root (map, node*) >

<!-- Additionally, the root contains a type attribute, which
                    specifies whether it's the system or user root. -->
<!ATTLIST root
                         type (system|user) #REQUIRED >

<!-- Each node has a map representing its preferences (if any),
                    and one node for each child (if any). -->
<!ELEMENT node (map, node*) >

<!-- Additionally, each node has a name attribute -->
<!ATTLIST node
                         name CDATA #REQUIRED >

<!-- A map represents the preferences stored at a node (if any). -->
<!ELEMENT map (entry*) >

<!-- An entry represents a single preference, which is simply
                     a key-value pair. -->
<!ELEMENT entry EMPTY >
<!ATTLIST entry
                         key   CDATA #REQUIRED
                         value CDATA #REQUIRED >
            }

すべての Preferences 実装には、関連付けられた PreferencesFactory 実装が必要です。 すべての Java(TM) SE 実装は、ルート設定ノードの生成に使用されるPreferencesFactory実装を指定する手段を提供する必要があります。 これにより、管理者は既定の基本設定の実装を別の実装に置き換えることができます。

実装に関する注意: Sun の JRE では、 PreferencesFactory の実装は次のようになります。

<ol>

<li>

システム プロパティ java.util.prefs.PreferencesFactory が定義されている場合は、 PreferencesFactory インターフェイスを実装するクラスの完全修飾名になります。 クラスが読み込まれ、インスタンス化されます。このプロセスが失敗した場合は、指定されていないエラーがスローされます。

</li>

<li>

PreferencesFactory実装クラス ファイルが、java.lang.ClassLoader#getSystemClassLoader system class loaderに表示される jar ファイルにインストールされており、その jar ファイルにリソース ディレクトリ META-INF/servicesjava.util.prefs.PreferencesFactoryという名前のプロバイダー構成ファイルが含まれている場合、そのファイルで指定された最初のクラス名が取得されます。 このような jar ファイルが複数指定されている場合は、最初に見つかった jar ファイルが使用されます。 クラスが読み込まれ、インスタンス化されます。このプロセスが失敗した場合は、指定されていないエラーがスローされます。

</li>

<li>

最後に、上記のシステム プロパティも拡張 jar ファイルも指定されていない場合、基になるプラットフォームのシステム全体の既定の PreferencesFactory 実装が読み込まれ、インスタンス化されます。

</li>

</ol>

1.4 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
Preferences()

唯一のコンストラクター。

Preferences(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

フィールド

名前 説明
MaxKeyLength

キーとして使用できる文字列の最大長 (80 文字)。

MaxNameLength

ノード名の最大長 (80 文字)。

MaxValueLength

値として使用できる文字列の最大長 (8192 文字)。

プロパティ

名前 説明
Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
IsUserNode

これがユーザー設定ノードかどうかを返します。

JniIdentityHashCode

ユーザー設定データの階層コレクション内のノード。

(継承元 Object)
JniPeerMembers

ユーザー設定データの階層コレクション内のノード。

PeerReference

ユーザー設定データの階層コレクション内のノード。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

名前 説明
AbsolutePath()

この基本設定ノードの絶対パス名を返します。

AddNodeChangeListener(INodeChangeListener)

指定したリスナーを登録して、この ノードのノード変更イベント を受信します。

AddPreferenceChangeListener(IPreferenceChangeListener)

指定したリスナーを登録して、この基本設定ノードの 基本設定変更イベント を受信します。

ChildrenNames()

このノードを基準にして、この基本設定ノードの子の名前を返します。

Clear()

この基本設定ノードのすべての基本設定 (キーと値の関連付け) を削除します。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Dispose()

ユーザー設定データの階層コレクション内のノード。

(継承元 Object)
Dispose(Boolean)

ユーザー設定データの階層コレクション内のノード。

(継承元 Object)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
ExportNode(Stream)

指定された出力ストリームで、このノードに含まれるすべての基本設定を表す XML ドキュメントを出力します (子孫は出力しません)。

ExportNodeAsync(Stream)

ユーザー設定データの階層コレクション内のノード。

ExportSubtree(Stream)

このノードとそのすべての子孫に含まれるすべての基本設定を表す XML ドキュメントを出力します。

ExportSubtreeAsync(Stream)

ユーザー設定データの階層コレクション内のノード。

Flush()

この基本設定ノードとその子孫の内容の変更を永続的ストアに強制的に適用します。

FlushAsync()

ユーザー設定データの階層コレクション内のノード。

Get(String, String)

この基本設定ノードの指定したキーに関連付けられている値を返します。

GetBoolean(String, Boolean)

この基本設定ノードの指定したキーに関連付けられた文字列によって表されるブール値を返します。

GetByteArray(String, Byte[])

この基本設定ノードの指定したキーに関連付けられた文字列によって表されるバイト配列値を返します。

GetDouble(String, Double)

この基本設定ノードの指定したキーに関連付けられた文字列によって表される double 値を返します。

GetFloat(String, Single)

この基本設定ノードの指定したキーに関連付けられた文字列によって表される float 値を返します。

GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
GetInt(String, Int32)

この基本設定ノードの指定したキーに関連付けられた文字列によって表される int 値を返します。

GetLong(String, Int64)

この基本設定ノードの指定したキーに関連付けられた文字列によって表される長い値を返します。

ImportPreferences(Stream)

XML ドキュメントによって表されるすべての基本設定を、指定された入力ストリームにインポートします。

ImportPreferencesAsync(Stream)

ユーザー設定データの階層コレクション内のノード。

JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Keys()

この基本設定ノードに関連付けられた値を持つすべてのキーを返します。

Name()

この基本設定ノードの名前を、親を基準にして返します。

Node(String)

このノードと同じツリー内の名前付き基本設定ノードを返し、存在しない場合はそのノードとその先祖を作成します。

NodeExists(String)

名前付き基本設定ノードがこのノードと同じツリーに存在する場合は true を返します。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
Parent()

この基本設定ノードの親を返します。ルートの場合は null します。

Put(String, String)

指定した値を、この基本設定ノードの指定したキーに関連付けます。

PutBoolean(String, Boolean)

指定したブール値を表す文字列を、この基本設定ノードの指定したキーに関連付けます。

PutByteArray(String, Byte[])

指定したバイト配列を表す文字列を、この基本設定ノードの指定したキーに関連付けます。

PutDouble(String, Double)

指定した double 値を表す文字列を、この基本設定ノードの指定したキーに関連付けます。

PutFloat(String, Single)

指定した float 値を表す文字列を、この基本設定ノードの指定したキーに関連付けます。

PutInt(String, Int32)

指定した int 値を表す文字列を、この基本設定ノードの指定したキーに関連付けます。

PutLong(String, Int64)

指定した長い値を表す文字列を、この基本設定ノードの指定したキーに関連付けます。

Remove(String)

この基本設定ノード内の指定したキーに関連付けられている値 (存在する場合) を削除します。

RemoveNode()

この基本設定ノードとそのすべての子孫を削除し、削除されたノードに含まれる基本設定を無効にします。

RemoveNodeChangeListener(INodeChangeListener)

指定した NodeChangeListenerを削除し、変更イベントを受信しなくなります。

RemovePreferenceChangeListener(IPreferenceChangeListener)

指定した基本設定変更リスナーを削除して、基本設定変更イベントを受信しなくなります。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
Sync()

この優先ノードとその子孫からの将来の読み取りには、 sync 呼び出しの前に永続ストア (任意の VM から) にコミットされたすべての変更が反映されます。

SyncAsync()

ユーザー設定データの階層コレクション内のノード。

SystemNodeForPackage(Class)

<strong>WARNING:</strong> Android では、"システム" と "ユーザー" の基本設定に対応する基本設定ノードは、アプリにアクセスできないファイル システムのセクションに格納されます。

SystemRoot()

<strong>WARNING:</strong> Android では、"システム" と "ユーザー" の基本設定に対応する基本設定ノードは、アプリにアクセスできないファイル システムのセクションに格納されます。

ToArray<T>()

ユーザー設定データの階層コレクション内のノード。

(継承元 Object)
ToString()

式:(this.isUserNode() ? "User" : "System") + " Preference Node: " + this.absolutePath()によって計算されるかのように、この基本設定ノードの文字列形式を返します。

UnregisterFromRuntime()

ユーザー設定データの階層コレクション内のノード。

(継承元 Object)
UserNodeForPackage(Class)

<strong>WARNING:</strong> Android では、"システム" と "ユーザー" の基本設定に対応する基本設定ノードは、アプリにアクセスできないファイル システムのセクションに格納されます。

UserRoot()

<strong>WARNING:</strong> Android では、"システム" と "ユーザー" の基本設定に対応する基本設定ノードは、アプリにアクセスできないファイル システムのセクションに格納されます。

Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

ユーザー設定データの階層コレクション内のノード。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

ユーザー設定データの階層コレクション内のノード。

(継承元 Object)
IJavaPeerable.Finalized()

ユーザー設定データの階層コレクション内のノード。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

ユーザー設定データの階層コレクション内のノード。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

ユーザー設定データの階層コレクション内のノード。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

ユーザー設定データの階層コレクション内のノード。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

ユーザー設定データの階層コレクション内のノード。

(継承元 Object)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

ユーザー設定データの階層コレクション内のノード。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象