AbstractPreferences 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 클래스는 클래스의 스켈레탈 구현을 Preferences 제공하여 구현 작업을 크게 완화합니다.
[Android.Runtime.Register("java/util/prefs/AbstractPreferences", DoNotGenerateAcw=true)]
public abstract class AbstractPreferences : Java.Util.Prefs.Preferences
[<Android.Runtime.Register("java/util/prefs/AbstractPreferences", DoNotGenerateAcw=true)>]
type AbstractPreferences = class
inherit Preferences
- 상속
- 특성
설명
이 클래스는 클래스의 스켈레탈 구현을 Preferences 제공하여 구현 작업을 크게 완화합니다.
<strong>이 클래스는 구현자 전용입니다 Preferences . 시설의 Preferences 일반 사용자는 이 설명서를 참조할 필요가 없습니다.
Preferences 설명서로 충분합니다.</strong>
구현자는 9개의 추상 SPI(서비스 공급자 인터페이스) 메서드#getSpi(String), 즉 , , #removeSpi(String)#putSpi(String,String), #childSpi(String), #childrenNamesSpi()#keysSpi()#removeNodeSpi()#syncSpi() 및 #flushSpi().를 재정의해야 합니다. 모든 구체적인 메서드는 이러한 SPI 메서드 위에 구현되는 방법을 정확하게 지정합니다. 구현자는 재량에 따라 성능과 같은 어떤 이유로든 기본 구현이 만족스럽지 않은 경우 하나 이상의 구체적인 메서드를 재정의할 수 있습니다.
SPI 메서드는 예외 동작과 관련된 세 개의 그룹으로 나타집니다. 메서드는 getSpi 예외를 throw해서는 안 되지만 이 메서드에서 throw한 예외가 호출자에게 지정된 기본값을 반환하는 가로채 #get(String,String)기 때문에 실제로는 중요하지 않습니다. 및 flushSpi 메서드는 removeNodeSpi, keysSpi, childrenNamesSpi, syncSpi throwBackingStoreException하도록 지정되며, 작업을 수행할 수 없는 경우 이 확인된 예외를 throw하려면 구현이 필요합니다. 예외가 바깥쪽으로 전파되어 해당 API 메서드가 실패합니다.
나머지 SPI 메서드 #putSpi(String,String)#removeSpi(String) 는 #childSpi(String) 더 복잡한 예외 동작이 있습니다. 지원 저장소를 사용할 수 없는 경우에도 일반적으로 계약을 준수할 수 있으므로 throw BackingStoreException하도록 지정되지 않습니다. 이는 정보를 반환하지 않으며 후속 호출이 Preferences#sync()수행될 때까지 해당 효과가 영구화될 필요가 없기 때문에 적용됩니다Preferences#flush(). 일반적으로 이러한 SPI 메서드는 예외를 throw해서는 안 됩니다. 일부 구현에서는 이러한 호출이 나중에 처리하기 위해 요청된 작업을 큐에 넣기조차 할 수 없는 상황이 있을 수 있습니다. 이러한 상황에서도 일반적으로 예외를 throw하는 대신 호출을 무시하고 반환하는 것이 좋습니다. 그러나 이러한 상황에서 반환은 모든 이전 작업이 성공적으로 영구적으로 수행되었음을 의미하므로 모든 후속 호출 flush()sync 및 반환 falsetrue 해야 합니다.
호출자가 요청된 작업을 수행할 수 있는 putSpi, removeSpi and childSpi 기본 운영 체제에 대한 충분한 권한이 없는 경우 예외를 throw해야 하는 한 가지 상황이 있습니다. 예를 들어 권한이 없는 사용자가 시스템 기본 설정을 수정하려고 하면 대부분의 시스템에서 이 문제가 발생합니다. (필요한 권한은 구현마다 다릅니다. 일부 구현에서는 파일 시스템에서 일부 디렉터리의 내용을 수정할 수 있습니다. 다른 경우에는 레지스트리에서 일부 키의 내용을 수정할 권리가 있습니다.) 이러한 상황에서는 일반적으로 이러한 작업이 나중에 영구적으로 실행되는 것처럼 프로그램이 계속 실행되도록 하는 것은 바람직하지 않습니다. 이러한 상황에서는 구현에서 예외를 throw할 필요가 없지만 그렇게 하는 것이 좋습니다. A SecurityException 가 적절할 것입니다.
대부분의 SPI 메서드는 기본 설정 노드에서 정보를 읽거나 쓰는 구현이 필요합니다. 구현자는 다른 VM이 백업 저장소에서 이 노드를 동시에 삭제했을 수 있다는 사실을 주의해야 합니다. 노드가 삭제된 경우 노드를 다시 만드는 것은 구현의 책임입니다.
구현 참고: Sun의 기본 Preferences 구현에서 사용자의 ID는 기본 운영 체제에서 상속되며 가상 머신의 수명 동안 변경되지 않습니다. 서버 쪽 Preferences 구현은 사용자 ID가 요청에서 요청으로 변경될 수 있으며, 정적 ThreadLocal 인스턴스를 사용하여 메서드에 Preferences 암시적으로 전달될 수 있습니다. 이러한 구현의 작성자는 사용자를 각 Preferences 인스턴스와 영구적으로 연결하지 않고 기본 설정에 액세스할 때(예: 메서드에 의해 #get(String,String)#put(String,String)) 사용자를 결정하는 것이 좋습니다. 후자의 동작은 정상적인 Preferences 사용과 충돌하여 큰 혼란을 야기합니다.
1.4에 추가되었습니다.
에 대한 java.util.prefs.AbstractPreferencesJava 설명서
이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.
생성자
| Name | Description |
|---|---|
| AbstractPreferences(AbstractPreferences, String) |
지정된 부모 및 해당 부모를 기준으로 지정된 이름을 사용하여 기본 설정 노드를 만듭니다. |
| AbstractPreferences(IntPtr, JniHandleOwnership) |
JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
필드
| Name | Description |
|---|---|
| MaxKeyLength |
키로 허용되는 최대 문자열 길이(80자)입니다. (다음에서 상속됨 Preferences) |
| MaxNameLength |
노드 이름의 최대 길이(80자)입니다. (다음에서 상속됨 Preferences) |
| MaxValueLength |
값으로 허용되는 문자열의 최대 길이(8192자)입니다. (다음에서 상속됨 Preferences) |
속성
| Name | Description |
|---|---|
| Class |
이 |
| Handle |
기본 Android 인스턴스에 대한 핸들입니다. (다음에서 상속됨 Object) |
| IsRemoved |
메서드를 사용하여 이 노드(또는 상위 노드)가 제거된 iff를 반환 |
| IsUserNode |
의 사양 |
| JniIdentityHashCode |
이 클래스는 클래스의 스켈레탈 구현을 |
| JniPeerMembers |
이 클래스는 클래스의 스켈레탈 구현을 |
| Lock |
이 노드를 잠그는 데 모니터가 사용되는 개체입니다. |
| NewNode |
이 필드는 이 개체를 만들기 전에 이 노드가 백업 저장소에 없는 경우여야 합니다 |
| PeerReference |
이 클래스는 클래스의 스켈레탈 구현을 |
| ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
| ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
메서드
| Name | Description |
|---|---|
| AbsolutePath() |
의 사양 |
| AddNodeChangeListener(INodeChangeListener) |
|
| AddPreferenceChangeListener(IPreferenceChangeListener) |
|
| CachedChildren() |
이 노드의 알려진 이동되지 않은 자식을 모두 반환합니다. |
| ChildrenNames() |
의 사양 |
| ChildrenNamesSpi() |
이 기본 설정 노드의 자식 이름을 반환합니다. |
| ChildSpi(String) |
이 기본 설정 노드의 명명된 자식 값을 반환하여 아직 없는 경우 만듭니다. |
| Clear() |
의 사양 |
| Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
| Dispose() |
이 클래스는 클래스의 스켈레탈 구현을 |
| Dispose(Boolean) |
이 클래스는 클래스의 스켈레탈 구현을 |
| Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
| ExportNode(Stream) |
의 사양 |
| ExportNodeAsync(Stream) |
이 클래스는 클래스의 스켈레탈 구현을 |
| ExportSubtree(Stream) |
의 사양 |
| ExportSubtreeAsync(Stream) |
이 클래스는 클래스의 스켈레탈 구현을 |
| Flush() |
의 사양 |
| FlushAsync() |
이 클래스는 클래스의 스켈레탈 구현을 |
| FlushSpi() |
이 메서드는 이 노드가 잠겨 있는 상태에서 호출됩니다. |
| Get(String, String) |
의 사양 |
| GetBoolean(String, Boolean) |
의 사양 |
| GetByteArray(String, Byte[]) |
의 사양 |
| GetChild(String) |
명명된 자식이 있거나 없는 경우 반환합니다 |
| GetDouble(String, Double) |
의 사양 |
| GetFloat(String, Single) |
의 사양 |
| GetHashCode() |
개체에 대한 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
| GetInt(String, Int32) |
의 사양 |
| GetLong(String, Int64) |
의 사양 |
| GetSpi(String) |
이 기본 설정 노드에서 지정된 키와 연결된 값을 반환하거나 |
| JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
| Keys() |
의 사양 |
| KeysSpi() |
이 기본 설정 노드에 연결된 값이 있는 모든 키를 반환합니다. |
| Name() |
의 사양 |
| Node(String) |
의 사양 |
| NodeExists(String) |
의 사양 |
| Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
| NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
| Parent() |
의 사양 |
| Put(String, String) |
의 사양 |
| PutBoolean(String, Boolean) |
의 사양 |
| PutByteArray(String, Byte[]) |
의 사양 |
| PutDouble(String, Double) |
의 사양 |
| PutFloat(String, Single) |
의 사양 |
| PutInt(String, Int32) |
의 사양 |
| PutLong(String, Int64) |
의 사양 |
| PutSpi(String, String) |
지정된 키-값 연결을 이 기본 설정 노드에 배치합니다. |
| Remove(String) |
의 사양 |
| RemoveNode() |
의 사양 |
| RemoveNodeChangeListener(INodeChangeListener) |
이 노드에서 지정된 |
| RemoveNodeSpi() |
이 기본 설정 노드를 제거하여 해당 노드와 기본 설정이 포함된 모든 기본 설정을 무효화합니다. |
| RemovePreferenceChangeListener(IPreferenceChangeListener) |
이 노드에서 지정된 |
| RemoveSpi(String) |
이 기본 설정 노드에서 지정된 키에 대한 연결(있는 경우)을 제거합니다. |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
| Sync() |
의 사양 |
| SyncAsync() |
이 클래스는 클래스의 스켈레탈 구현을 |
| SyncSpi() |
이 메서드는 이 노드가 잠겨 있는 상태에서 호출됩니다. |
| ToArray<T>() |
이 클래스는 클래스의 스켈레탈 구현을 |
| ToString() |
이 기본 설정 노드의 절대 경로 이름을 반환합니다. |
| UnregisterFromRuntime() |
이 클래스는 클래스의 스켈레탈 구현을 |
| Wait() |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받><거나 ><>중단/종료<합니다.> (다음에서 상속됨 Object) |
| Wait(Int64, Int32) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 >중단/<종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
| Wait(Int64) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 >중단/<종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
| Name | Description |
|---|---|
| IJavaPeerable.Disposed() |
이 클래스는 클래스의 스켈레탈 구현을 |
| IJavaPeerable.DisposeUnlessReferenced() |
이 클래스는 클래스의 스켈레탈 구현을 |
| IJavaPeerable.Finalized() |
이 클래스는 클래스의 스켈레탈 구현을 |
| IJavaPeerable.JniManagedPeerState |
이 클래스는 클래스의 스켈레탈 구현을 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
이 클래스는 클래스의 스켈레탈 구현을 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
이 클래스는 클래스의 스켈레탈 구현을 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
이 클래스는 클래스의 스켈레탈 구현을 |
확장명 메서드
| Name | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
인스턴스 |
| JavaAs<TResult>(IJavaPeerable) |
형식 |
| JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
| JavaCast<TResult>(IJavaObject) |
이 클래스는 클래스의 스켈레탈 구현을 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
형식 |