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>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)截获,这将向调用方返回指定的默认值。 指定要引发BackingStoreException的removeNodeSpi, keysSpi, childrenNamesSpi, syncSpi和flushSpi方法,并且如果无法执行该操作,则需要实现来引发此检查的异常。 异常向外传播,导致相应的 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 |
返回此 |
| Handle |
基础 Android 实例的句柄。 (继承自 Object) |
| IsRemoved |
返回 |
| IsUserNode |
根据规范实现 |
| JniIdentityHashCode |
此类提供类的 |
| JniPeerMembers |
此类提供类的 |
| Lock |
一个对象,其监视器用于锁定此节点。 |
| NewNode |
此字段应在 |
| PeerReference |
此类提供类的 |
| ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
| ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
方法
| 名称 | 说明 |
|---|---|
| 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() |
使当前线程等待,直到唤醒它,通常是通过 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() |
此类提供类的 |
| IJavaPeerable.DisposeUnlessReferenced() |
此类提供类的 |
| IJavaPeerable.Finalized() |
此类提供类的 |
| IJavaPeerable.JniManagedPeerState |
此类提供类的 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
此类提供类的 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
此类提供类的 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
此类提供类的 |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
此类提供类的 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |