語言

AbstractPreferences 類別

定義

此類別提供該類別的骨架實作 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
繼承
AbstractPreferences
屬性

備註

此類別提供該類別的骨架實作 Preferences ,大幅簡化實作工作。

<強>本課程僅供實作者使用 Preferences 。 一般設施使用者 Preferences 無需查閱這些文件。 文件 Preferences 應該足夠了。</強壯>

實作者必須覆蓋九種抽象服務提供者介面(SPI)方法:#getSpi(String)、 #putSpi(String,String)#removeSpi(String)#childSpi(String)#removeNodeSpi()#keysSpi()#childrenNamesSpi()#syncSpi()#flushSpi()。 所有具體方法都明確規定如何在這些 SPI 方法之上實作。 如果預設實作因任何原因(如效能)不理想,實作者可自行決定覆蓋一項或多項具體方法。

SPI 方法在例外行為方面可分為三類。 該 getSpi 方法不應該拋出例外,但其實無所謂,因為這個方法拋出的任何例外都會被 #get(String,String)攔截,該異常會回傳指定的預設值給呼叫者。 removeNodeSpi, keysSpi, childrenNamesSpi, syncSpi flushSpi與方法被指定要拋出 BackingStoreException,且如果實作無法執行該操作,則必須拋出這個檢查過的例外。 例外會向外傳播,導致相應的 API 方法失敗。

剩餘的 SPI 方法 #putSpi(String,String)則 #removeSpi(String)#childSpi(String) 有更複雜的例外行為。 他們沒有被指定要擲, BackingStoreException因為即使後備商店無法使用,他們通常也能遵守合約。 這是真的,因為他們不會回傳任何資訊,且其效果直到下一次呼叫 Preferences#flush() 或 Preferences#sync()之前都不需要永久化。 一般來說,這些 SPI 方法不應該拋出例外。 在某些實作中,這些呼叫甚至無法將請求操作排隊以供後續處理。 即使在這些情況下,通常也最好忽略召喚並返回,而不是拋出例外。 然而在此情況下,所有後續的 和 的呼喚flush()sync都應該返回false,因為返回true意味著所有先前的操作都已成功成為永久。

有一種putSpi, removeSpi and childSpi拋出例外:當呼叫者在底層作業系統上缺乏足夠的權限來執行所請求的操作時。 例如,當非特權使用者嘗試修改系統偏好時,大多數系統都會發生這種情況。 (所需權限會因實作不同而異。在某些實作中,他們有權修改檔案系統中某個目錄的內容;在其他情況下,則是修改登錄檔中某個金鑰內容的權利。)在這些情況下,通常不希望讓程式繼續執行,彷彿這些操作將來會變成永久。 雖然實施單位在這些情況下不必拋棄例外,但鼓勵他們這麼做。 SecurityException A會比較合適。

大多數 SPI 方法要求實作在偏好節點讀取或寫入資訊。 實作者應注意,可能有其他虛擬機同時從備份儲存庫中刪除了此節點。 如果節點已被刪除,實作方有責任重新建立該節點。

實作說明:在 Sun 的預設 Preferences 實作中,使用者的身份是繼承自底層作業系統,且在虛擬機的整個生命週期內不會改變。 已知伺服器端Preferences實作可能會讓使用者身份從請求變更,透過靜態Preferences實例隱含地傳遞給ThreadLocal方法。 這類實作的 作者強烈建議 在偏好設定存取時(例如透過 #get(String,String) or #put(String,String) 方法)判斷使用者,而非永久將使用者與每個 Preferences 實例關聯。 後者的行為與正常 Preferences 使用方式相衝突,會造成極大的混淆。

在 1.4 版本加入。

Java 文件 java.util.prefs.AbstractPreferences。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
AbstractPreferences(AbstractPreferences, String)

建立一個偏好節點,其父節點與相對於父節點的指定名稱。

AbstractPreferences(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。

欄位

名稱 Description
MaxKeyLength

鍵碼允許的最大字串長度(80 個字元)。

(繼承來源 Preferences)
MaxNameLength

節點名稱的最大長度(80 個字元)。

(繼承來源 Preferences)
MaxValueLength

字串的最大長度(8192 字元)。

(繼承來源 Preferences)

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
IsRemoved

回傳 true 是當該節點(或祖先)已被方法移除 #removeNode() 時。

IsUserNode

依照 中的isUserNode規範實作該Preferences#isUserNode()方法。

JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

此類別提供該類別的骨架實作 Preferences ,大幅簡化實作工作。

(繼承來源 JavaObject)
JniPeerMembers

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

Lock

一個物件的監控器被用來鎖定此節點。

NewNode

如果該節點在建立此物件之前不存在於後備儲存庫,則應 true 包含此欄位。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

方法

名稱 Description
AbsolutePath()

依照 中的absolutePath規範實作該Preferences#absolutePath()方法。

AddNodeChangeListener(INodeChangeListener)

為此節點註冊一個 NodeChangeListener 實例,該節點將處理 NodeChangeEvents。

AddPreferenceChangeListener(IPreferenceChangeListener)

為此節點註冊一個 PreferenceChangeListener 實例,該節點將處理 PreferenceChangeEvents。

CachedChildren()

回傳該節點所有已知且未移除的子節點。

ChildrenNames()

依照 中的children規範實作該Preferences#childrenNames()方法。

ChildrenNamesSpi()

回傳此偏好節點子節點的名稱。

ChildSpi(String)

回傳該偏好節點的命名子節點,若尚未存在則建立該節點。

Clear()

依照 中的clear規範實作該Preferences#clear()方法。

Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

此類別提供該類別的骨架實作 Preferences ,大幅簡化實作工作。

(繼承來源 JavaObject)
Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

此類別提供該類別的骨架實作 Preferences ,大幅簡化實作工作。

(繼承來源 JavaObject)
Equals(Object)

此類別提供該類別的骨架實作 Preferences ,大幅簡化實作工作。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
ExportNode(Stream)

依照 中的exportNode規範實作該Preferences#exportNode(OutputStream)方法。

ExportNodeAsync(Stream)

非同步會輸出一份 XML 文件,代表該節點中所有偏好,但不包含其後代。

(繼承來源 Preferences)
ExportSubtree(Stream)

依照 中的exportSubtree規範實作該Preferences#exportSubtree(OutputStream)方法。

ExportSubtreeAsync(Stream)

非同步地會輸出一份 XML 文件,代表該節點及其所有後代節點中所有偏好設定。

(繼承來源 Preferences)
Flush()

依照 中的flush規範實作該Preferences#flush()方法。

FlushAsync()

非同步強制將此偏好節點及其後代節點的任何變更強制至持久儲存。

(繼承來源 Preferences)
FlushSpi()

此方法在節點鎖定時被呼叫。

Get(String, String)

依照 中的get規範實作該Preferences#get(String,String)方法。

GetBoolean(String, Boolean)

依照 中的getBoolean規範實作該Preferences#getBoolean(String,boolean)方法。

GetByteArray(String, Byte[])

依照 中的getByteArray規範實作該Preferences#getByteArray(String,byte[])方法。

GetChild(String)

如果有命名子節點,則回 null 傳,若不存在則回傳。

GetDouble(String, Double)

依照 中的getDouble規範實作該Preferences#getDouble(String,double)方法。

GetFloat(String, Single)

依照 中的getFloat規範實作該Preferences#getFloat(String,float)方法。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
GetInt(String, Int32)

依照 中的getInt規範實作該Preferences#getInt(String,int)方法。

GetLong(String, Int64)

依照 中的getLong規範實作該Preferences#getLong(String,long)方法。

GetSpi(String)

回傳該偏好節點上與指定鍵相關的值,或 null 若該鍵無關聯,或此時無法確定關聯,則回傳。

JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
Keys()

依照 中的keys規範實作該Preferences#keys()方法。

KeysSpi()

回傳所有在偏好節點中與其值相符的鍵。

Name()

依照 中的name規範實作該Preferences#name()方法。

Node(String)

依照 中的node規範實作該Preferences#node(String)方法。

NodeExists(String)

依照 中的nodeExists規範實作該Preferences#nodeExists(String)方法。

Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
Parent()

依照 中的parent規範實作該Preferences#parent()方法。

Put(String, String)

依照 中的put規範實作該Preferences#put(String,String)方法。

PutBoolean(String, Boolean)

依照 中的putBoolean規範實作該Preferences#putBoolean(String,boolean)方法。

PutByteArray(String, Byte[])

依照 中的putByteArray規範實作該Preferences#putByteArray(String,byte[])方法。

PutDouble(String, Double)

依照 中的putDouble規範實作該Preferences#putDouble(String,double)方法。

PutFloat(String, Single)

依照 中的putFloat規範實作該Preferences#putFloat(String,float)方法。

PutInt(String, Int32)

依照 中的putInt規範實作該Preferences#putInt(String,int)方法。

PutLong(String, Int64)

依照 中的putLong規範實作該Preferences#putLong(String,long)方法。

PutSpi(String, String)

將給定的鍵值關聯放入這個偏好節點。

Remove(String)

依照 中的remove(String)規範實作該Preferences#remove(String)方法。

RemoveNode()

依照 中的removeNode()規範實作該Preferences#removeNode()方法。

RemoveNodeChangeListener(INodeChangeListener)

將給定 NodeChangeListener 的實例從該節點中移除。

RemoveNodeSpi()

移除此偏好節點,使其及其所包含的偏好無效。

RemovePreferenceChangeListener(IPreferenceChangeListener)

將給定 PreferenceChangeListener 的實例從該節點中移除。

RemoveSpi(String)

在此偏好節點移除指定金鑰的關聯(如有)。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

此類別提供該類別的骨架實作 Preferences ,大幅簡化實作工作。

(繼承來源 JavaObject)
Sync()

依照 中的sync規範實作該Preferences#sync()方法。

SyncAsync()

非同步地將此偏好節點及其後代節點與持久儲存同步。

(繼承來源 Preferences)
SyncSpi()

此方法在節點鎖定時被呼叫。

ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

回傳此偏好節點的絕對路徑名稱。

UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

此類別提供該類別的骨架實作 Preferences ,大幅簡化實作工作。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

此類別提供該類別的骨架實作 Preferences ,大幅簡化實作工作。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

此類別提供該類別的骨架實作 Preferences ,大幅簡化實作工作。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

此類別提供該類別的骨架實作 Preferences ,大幅簡化實作工作。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

此類別提供該類別的骨架實作 Preferences ,大幅簡化實作工作。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

此類別提供該類別的骨架實作 Preferences ,大幅簡化實作工作。

(繼承來源 JavaObject)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

此類別提供該類別的骨架實作 Preferences ,大幅簡化實作工作。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於