Share via


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 데이터베이스가 포함됩니다. 이 클래스의 사용자는 지원 저장소의 세부 정보를 신경 쓰지 않아도 됩니다.

두 개의 별도 기본 설정 노드 트리가 있습니다. 하나는 사용자 기본 설정용이고 다른 하나는 시스템 기본 설정입니다. 각 사용자에게는 별도의 사용자 기본 설정 트리가 있으며 지정된 시스템의 모든 사용자는 동일한 시스템 기본 설정 트리를 공유합니다. "사용자" 및 "시스템"에 대한 정확한 설명은 구현마다 다릅니다. 사용자 기본 설정 트리에 저장된 일반적인 정보에는 글꼴 선택, 색 선택 또는 특정 애플리케이션의 기본 창 위치 및 크기가 포함될 수 있습니다. 시스템 기본 설정 트리에 저장된 일반적인 정보에는 애플리케이션에 대한 설치 구성 데이터가 포함될 수 있습니다.

기본 설정 트리의 노드 이름은 계층적 파일 시스템의 디렉터리와 비슷한 방식으로 명명됩니다. 기본 설정 트리의 모든 노드에는 노드 이름 (반드시 고유하지는 않음), 고유한 절대 경로 이름 및 자신을 포함한 각 상위 항목에 상대적인 경로 이름이 있습니다.

루트 노드에는 빈 문자열("")의 노드 이름이 있습니다. 다른 모든 노드에는 임의 노드 이름이 있으며, 노드가 생성될 때 지정됩니다. 이 이름에 대한 유일한 제한 사항은 빈 문자열일 수 없고 슬래시 문자('/')를 포함할 수 없다는 것입니다.

루트 노드의 절대 경로 이름은 입니다 "/". 루트 노드의 자식에는<의 "/" + 절대 경로 이름이 있습니다. 노드 이름>. 다른 모든 노드에는<의 절대 경로 이름이 있습니다 . 부모의 절대 경로 이름> + "/" + < 노드 이름>. 모든 절대 경로 이름은 슬래시 문자로 시작합니다.

상위 항목에 상대적인 노드 n의 경로 이름은 단순히 n의 절대 경로 이름을 형성하기 위해 의 절대 경로 이름에 추가해야 하는 문자열이며 초기 슬래시 문자(있는 경우)가 제거됩니다. 참고: <ul><li>상대 경로 이름은 슬래시 문자로 시작합니다. <li>자체에 상대적인 모든 노드의 경로 이름은 빈 문자열입니다. <li>부모에 상대적인 모든 노드의 경로 이름은 노드 이름입니다(부모가 없는 루트 노드 제외). <li>루트를 기준으로 하는 모든 노드의 경로 이름은 초기 슬래시 문자가 제거된 절대 경로 이름입니다. </ul>

마지막으로 <ul><li>경로 이름에 여러 개의 연속 슬래시 문자가 포함되어 있지 않습니다. <li>루트의 절대 경로 이름을 제외한 경로 이름은 슬래시 문자로 끝납니다. <li>이 두 규칙을 준수하는 모든 문자열은 유효한 경로 이름입니다. </ul>

기본 설정 데이터를 수정하는 모든 메서드는 비동기적으로 작동하도록 허용됩니다. 즉시 반환될 수 있으며 변경 내용은 결국 구현 종속 지연으로 영구 백업 저장소로 전파됩니다. 메서드를 flush 사용하여 백업 저장소에 대한 업데이트를 동기적으로 강제 적용할 수 있습니다. Java Virtual Machine의 정상적인 종료로 인해 보류 중인 업데이트가 손실 되지 않습니다 . 종료 시 명시적 flush 호출이 필요하지 않으므로 보류 중인 업데이트가 영구적으로 수행되도록 합니다.

개체에서 기본 설정을 읽는 모든 메서드는 Preferences 호출자가 기본값을 제공해야 합니다. 이전에 설정된 값이 없거나 백업 저장소를 사용할 수 없는 경우 기본값이 반환됩니다. 지원 저장소를 사용할 수 없게 되더라도 기능이 약간 저하되더라도 애플리케이션이 작동할 수 있도록 하기 위한 것입니다. 와 같은 flush여러 메서드에는 지원 저장소를 사용할 수 없는 경우 작동을 방지하는 의미 체계가 있습니다. 일반 애플리케이션은 이러한 메서드를 호출할 필요가 없습니다. 이 메서드는 을 throw BackingStoreException하도록 선언되었다는 사실로 식별할 수 있습니다.

이 클래스의 메서드는 외부 동기화 없이 단일 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>

<리튬>

시스템 속성 java.util.prefs.PreferencesFactory 이 정의되면 인터페이스를 구현하는 PreferencesFactory 클래스의 정규화된 이름으로 사용됩니다. 클래스가 로드되고 인스턴스화됩니다. 이 프로세스가 실패하면 지정되지 않은 오류가 throw됩니다.

</리튬>

<리튬>

PreferencesFactory 구현 클래스 파일이 에 표시되는 java.lang.ClassLoader#getSystemClassLoader system class loaderjar 파일에 설치되어 있고 해당 jar 파일에 리소스 디렉터리에 META-INF/services라는 java.util.prefs.PreferencesFactory 공급자 구성 파일이 포함된 경우 해당 파일에 지정된 첫 번째 클래스 이름이 사용됩니다. 이러한 jar 파일이 둘 이상 제공되면 발견된 첫 번째 파일이 사용됩니다. 클래스가 로드되고 인스턴스화됩니다. 이 프로세스가 실패하면 지정되지 않은 오류가 throw됩니다.

</리튬>

<리튬>

마지막으로 위에서 언급한 시스템 속성이나 확장 jar 파일이 제공되지 않으면 기본 플랫폼에 대한 시스템 차원의 기본 PreferencesFactory 구현이 로드되고 인스턴스화됩니다.

</리튬>

</Ol>

1.4에 추가되었습니다.

에 대한 Java 설명서입니다 java.util.prefs.Preferences.

이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.

생성자

Preferences()

단독 생성자입니다.

Preferences(IntPtr, JniHandleOwnership)

JNI 개체의 관리형 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

필드

MaxKeyLength

키로 허용되는 최대 문자열 길이(80자)입니다.

MaxNameLength

노드 이름의 최대 길이(80자)입니다.

MaxValueLength

값으로 허용되는 최대 문자열 길이(8192자)입니다.

속성

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 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)

이 기본 설정 노드에서 지정된 키와 연결된 문자열로 표시되는 long 값을 반환합니다.

ImportPreferences(Stream)

지정된 입력 스트림에서 XML 문서가 나타내는 모든 기본 설정을 가져옵니다.

ImportPreferencesAsync(Stream)

기본 설정 데이터의 계층적 컬렉션에 있는 노드입니다.

JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Keys()

이 기본 설정 노드에 연결된 값이 있는 모든 키를 반환합니다.

Name()

부모에 상대적인 이 기본 설정 노드의 이름을 반환합니다.

Node(String)

이 노드와 동일한 트리에 명명된 기본 설정 노드를 반환하여 해당 노드와 해당 상위 노드가 아직 없는 경우 만듭니다.

NodeExists(String)

명명된 기본 설정 노드가 이 노드와 동일한 트리에 있으면 true를 반환합니다.

Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 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)

지정된 long 값을 나타내는 문자열을 이 기본 설정 노드의 지정된 키와 연결합니다.

Remove(String)

이 기본 설정 노드에서 지정된 키와 연결된 값(있는 경우)을 제거합니다.

RemoveNode()

이 기본 설정 노드와 모든 하위 항목을 제거하여 제거된 노드에 포함된 모든 기본 설정을 무효화합니다.

RemoveNodeChangeListener(INodeChangeListener)

지정된 NodeChangeListener를 제거하여 더 이상 변경 이벤트를 수신하지 않습니다.

RemovePreferenceChangeListener(IPreferenceChangeListener)

지정된 기본 설정 변경 수신기를 제거하므로 더 이상 기본 설정 변경 이벤트를 수신하지 않습니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
Sync()

이 기본 설정 노드 및 해당 하위 항목에서 나중에 읽는 것은 호출 전에 영구 저장소(모든 VM에서)에 커밋된 모든 변경 내용을 반영하도록 sync 합니다.

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>)합니다<.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 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)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

기본 설정 데이터의 계층적 컬렉션에 있는 노드입니다.

GetJniTypeName(IJavaPeerable)

기본 설정 데이터의 계층적 컬렉션에 있는 노드입니다.

적용 대상