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 框架实现,大大缓解了实现该类的任务。

<strong>This class is only for Preferences implementers. 设施的 Preferences 普通用户无需查阅本文档。 文档 Preferences 应足够。</strong>

实现者必须重写九个抽象服务提供商接口(SPI)方法:#getSpi(String)、、#putSpi(String,String)#removeSpi(String)#childSpi(String)#removeNodeSpi()#keysSpi()、和 #childrenNamesSpi()#syncSpi()#flushSpi()。 所有具体方法都精确指定了如何在这些 SPI 方法上实现它们。 如果默认实现因任何原因(如性能)不尽如人意,则实施者可以随意替代一个或多个具体方法。

SPI 方法分为三个与异常行为相关的组。 该方法 getSpi 绝不应引发异常,但它并不重要,因为此方法引发的任何异常都将被 #get(String,String)截获,这将向调用方返回指定的默认值。 指定要引发BackingStoreExceptionremoveNodeSpi, keysSpi, childrenNamesSpi, syncSpiflushSpi方法,并且如果无法执行该操作,则需要实现来引发此检查的异常。 异常向外传播,导致相应的 API 方法失败。

剩余的 SPI 方法#putSpi(String,String)#removeSpi(String),并#childSpi(String)具有更复杂的异常行为。 他们没有指定扔 BackingStoreException,因为他们通常可以服从他们的合同,即使后盾商店不可用。 这是真的,因为它们不返回任何信息,并且其效果不需要成为永久的,直到后续调用 Preferences#flush()Preferences#sync()。 一般来说,这些 SPI 方法不应引发异常。 在某些实现中,在某些情况下,这些调用甚至无法排队请求的操作以供以后处理。 即使在这些情况下,通常最好只是忽略调用和返回,而不是引发异常。 然而,在这种情况下,所有后续调用flush()sync应返回,因为返回falsetrue意味着所有以前的操作都已成功永久执行。

有一种情况 putSpi, removeSpi and childSpi应该 引发异常:如果调用方在基础操作系统上没有足够的权限来执行请求的操作。 例如,如果非特权用户尝试修改系统首选项,则大多数系统上都会发生这种情况。 (所需权限因实现而异。在某些实现中,它们有权修改文件系统中某些目录的内容;对于其他项,他们有权修改注册表中某些密钥的内容。在上述任一情况下,让程序继续执行通常是不可取的,就像这些操作稍后会永久一样。 尽管在这些情况下不需要实现引发异常,但建议这样做。 A SecurityException 是合适的。

大多数 SPI 方法都需要实现在首选项节点上读取或写入信息。 实现者应注意另一个 VM 可能已从后盾存储区同时删除此节点。 如果节点已被删除,则实现负责重新创建节点。

实现说明:在 Sun 的默认 Preferences 实现中,用户的标识继承自基础操作系统,不会在虚拟机的生存期内更改。 可以识别到服务器端Preferences实现可能会使用户标识从请求更改为请求,并通过静态ThreadLocal实例隐式传递给Preferences方法。 强烈建议此类实现的作者在访问首选项时确定用户(例如,由#get(String,String)#put(String,String)方法访问),而不是永久关联用户与每个Preferences实例。 后一种行为与正常 Preferences 使用冲突,并会导致很大的混乱。

在 1.4 中添加。

Java文档java.util.prefs.AbstractPreferences

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

构造函数

名称 说明
AbstractPreferences(AbstractPreferences, String)

创建具有指定父级的首选项节点,以及相对于其父级的指定名称。

AbstractPreferences(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

字段

名称 说明
MaxKeyLength

允许作为键(80 个字符)的字符串的最大长度。

(继承自 Preferences)
MaxNameLength

节点名称的最大长度(80 个字符)。

(继承自 Preferences)
MaxValueLength

允许作为值(8192 个字符)的字符串的最大长度。

(继承自 Preferences)

属性

名称 说明
Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
IsRemoved

返回 true 此方法删除 #removeNode() 了此节点(或上级)的 iff。

IsUserNode

根据规范实现Preferences#isUserNode()该方法isUserNode

JniIdentityHashCode

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Object)
JniPeerMembers

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

Lock

一个对象,其监视器用于锁定此节点。

NewNode

此字段应在 true 创建此对象之前此节点不存在于后盾存储中。

PeerReference

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

方法

名称 说明
AbsolutePath()

根据规范实现Preferences#absolutePath()该方法absolutePath

AddNodeChangeListener(INodeChangeListener)

为此节点注册一个 NodeChangeListener 实例,该实例将进行处理 NodeChangeEvent

AddPreferenceChangeListener(IPreferenceChangeListener)

为此节点注册一个 PreferenceChangeListener 实例,该实例将进行处理 PreferenceChangeEvent

CachedChildren()

返回此节点的所有已知未移动子级。

ChildrenNames()

根据规范实现Preferences#childrenNames()该方法children

ChildrenNamesSpi()

返回此首选项节点的子级的名称。

ChildSpi(String)

返回此首选项节点的命名子级,如果它尚不存在,则创建它。

Clear()

根据规范实现Preferences#clear()该方法clear

Clone()

创建并返回此对象的副本。

(继承自 Object)
Dispose()

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Object)
Dispose(Boolean)

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Object)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
ExportNode(Stream)

根据规范实现Preferences#exportNode(OutputStream)该方法exportNode

ExportNodeAsync(Stream)

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Preferences)
ExportSubtree(Stream)

根据规范实现Preferences#exportSubtree(OutputStream)该方法exportSubtree

ExportSubtreeAsync(Stream)

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Preferences)
Flush()

根据规范实现Preferences#flush()该方法flush

FlushAsync()

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Preferences)
FlushSpi()

此方法在此节点锁定的情况下调用。

Get(String, String)

根据规范实现Preferences#get(String,String)该方法get

GetBoolean(String, Boolean)

根据规范实现Preferences#getBoolean(String,boolean)该方法getBoolean

GetByteArray(String, Byte[])

根据规范实现Preferences#getByteArray(String,byte[])该方法getByteArray

GetChild(String)

返回已命名的子级(如果存在); null 如果不存在,则返回该子级。

GetDouble(String, Double)

根据规范实现Preferences#getDouble(String,double)该方法getDouble

GetFloat(String, Single)

根据规范实现Preferences#getFloat(String,float)该方法getFloat

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
GetInt(String, Int32)

根据规范实现Preferences#getInt(String,int)该方法getInt

GetLong(String, Int64)

根据规范实现Preferences#getLong(String,long)该方法getLong

GetSpi(String)

返回与此首选项节点上的指定键关联的值,或者 null 如果没有此键的关联,或者目前无法确定关联。

JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Keys()

根据规范实现Preferences#keys()该方法keys

KeysSpi()

返回在此首选项节点中具有关联值的所有键。

Name()

根据规范实现Preferences#name()该方法name

Node(String)

根据规范实现Preferences#node(String)该方法node

NodeExists(String)

根据规范实现Preferences#nodeExists(String)该方法nodeExists

Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
Parent()

根据规范实现Preferences#parent()该方法parent

Put(String, String)

根据规范实现Preferences#put(String,String)该方法put

PutBoolean(String, Boolean)

根据规范实现Preferences#putBoolean(String,boolean)该方法putBoolean

PutByteArray(String, Byte[])

根据规范实现Preferences#putByteArray(String,byte[])该方法putByteArray

PutDouble(String, Double)

根据规范实现Preferences#putDouble(String,double)该方法putDouble

PutFloat(String, Single)

根据规范实现Preferences#putFloat(String,float)该方法putFloat

PutInt(String, Int32)

根据规范实现Preferences#putInt(String,int)该方法putInt

PutLong(String, Int64)

根据规范实现Preferences#putLong(String,long)该方法putLong

PutSpi(String, String)

将给定键值关联放入此首选项节点。

Remove(String)

根据规范实现Preferences#remove(String)该方法remove(String)

RemoveNode()

根据规范实现Preferences#removeNode()该方法removeNode()

RemoveNodeChangeListener(INodeChangeListener)

从此节点中删除给定 NodeChangeListener 实例。

RemoveNodeSpi()

删除此首选项节点,使它及其包含的任何首选项失效。

RemovePreferenceChangeListener(IPreferenceChangeListener)

从此节点中删除给定 PreferenceChangeListener 实例。

RemoveSpi(String)

在此首选项节点上删除指定键的关联(如果有)。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
Sync()

根据规范实现Preferences#sync()该方法sync

SyncAsync()

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Preferences)
SyncSpi()

此方法在此节点锁定的情况下调用。

ToArray<T>()

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Object)
ToString()

返回此首选项节点的绝对路径名称。

UnregisterFromRuntime()

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Object)
Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><>

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)

显式接口实现

名称 说明
IJavaPeerable.Disposed()

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Object)
IJavaPeerable.Finalized()

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

此类提供类的 Preferences 框架实现,大大缓解了实现该类的任务。

(继承自 Object)

扩展方法

名称 说明
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端有效。

适用于