Binder 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
远程对象的基类,这是由 IBinder
定义的轻型远程过程调用机制的核心部分。
[Android.Runtime.Register("android/os/Binder", DoNotGenerateAcw=true)]
public class Binder : Java.Lang.Object, Android.OS.IBinder, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/os/Binder", DoNotGenerateAcw=true)>]
type Binder = class
inherit Object
interface IBinder
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 继承
- 属性
- 实现
注解
远程对象的基类,这是由 IBinder
定义的轻型远程过程调用机制的核心部分。 此类是 IBinder 的实现,它提供此类对象的标准本地实现。
大多数开发人员不会直接实现此类,而是使用 aidl 工具描述所需的接口,并生成相应的 Binder 子类。 但是,可以直接派生自 Binder 来实现自己的自定义 RPC 协议,或者直接实例化原始 Binder 对象,以用作可在进程之间共享的令牌。
此类只是一个基本的 IPC 基元;它不会影响应用程序的生命周期,并且只要创建应用程序的进程继续运行,它才有效。 若要正确使用此功能,必须在顶级应用程序组件(或android.app.Service
android.app.Activity
android.content.ContentProvider
)的上下文中执行此操作,以便系统知道进程应保持运行状态。
必须记住进程可能消失的情况,因此,需要稍后重新创建一个新的 Binder,并在进程再次启动时重新附加它。 例如,如果在某个范围内 android.app.Activity
使用此功能,则活动在未启动活动时可能会终止;如果活动稍后重新创建,则需要创建一个新的 Binder 并将其重新交给正确的位置;你需要注意,你的进程可能出于另一个原因(例如接收广播)而启动,而不需要重新创建活动,从而运行用于创建新的 Binder 的代码。
适用于 . 的 android.os.Binder
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
Binder() |
默认构造函数只是初始化对象。 |
Binder(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
Binder(String) |
用于创建原始 Binder 对象(标记)以及描述符的构造函数。 |
属性
CallingPid |
返回正在处理当前事务的进程 ID。 |
CallingUid |
返回分配给正在处理的当前事务的进程的 Linux UID。 |
CallingUidOrThrow |
返回分配给当前正在处理的事务的进程分配的 Linux UID。 |
CallingUserHandle |
返回分配给正在处理的当前事务的进程的用户Handle。 |
CallingWorkSourceUid |
返回调用方设置的工作源。 |
Class |
返回此 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
InterfaceDescriptor |
默认实现返回空接口名称。 |
IsBinderAlive |
要添加
|
JniIdentityHashCode |
远程对象的基类,这是由 |
JniPeerMembers |
远程对象的基类,这是由 |
PeerReference |
远程对象的基类,这是由 |
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
方法
AttachInterface(IInterface, String) |
将特定接口与 Binder 关联到的便利方法。 |
ClearCallingIdentity() |
重置当前线程上传入 IPC 的标识。 |
ClearCallingWorkSource() |
清除此线程上的工作源。 |
Clone() |
创建并返回此对象的副本。 (继承自 Object) |
Dispose() |
远程对象的基类,这是由 |
Dispose(Boolean) |
远程对象的基类,这是由 |
Dump(FileDescriptor, PrintWriter, String[]) |
将对象的状态打印到给定流中。 |
Dump(FileDescriptor, String[]) |
实现调用更方便的版本 |
DumpAsync(FileDescriptor, String[]) |
例如 |
Equals(Object) |
指示其他对象是否“等于”此对象。 (继承自 Object) |
FlushPendingCommands() |
将当前线程中挂起的任何 Binder 命令刷新到内核驱动程序。 |
GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
JavaFinalize() |
当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。 (继承自 Object) |
JoinThreadPool() |
将调用线程添加到 IPC 线程池。 |
LinkToDeath(IBinderDeathRecipient, Int32) |
本地实现是一种无操作。 |
Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
OnTransact(Int32, Parcel, Parcel, Int32) |
默认实现是返回 false 的存根。 |
PingBinder() |
默认实现始终返回 true -- 如果在此处获取,则对象处于活动状态。 |
QueryLocalInterface(String) |
如果使用提供的信息与 |
RestoreCallingIdentity(Int64) |
将当前线程上传入 IPC 的标识还原回以前返回的 |
RestoreCallingWorkSource(Int64) |
使用或返回的 |
SetCallingWorkSourceUid(Int32) |
设置此线程的工作源。 |
SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
ToArray<T>() |
远程对象的基类,这是由 |
ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
Transact(Int32, Parcel, Parcel, TransactionFlags) |
默认实现会回退包裹和调用 onTransact。 |
UnlinkToDeath(IBinderDeathRecipient, Int32) |
本地实现是一种无操作。 |
UnregisterFromRuntime() |
远程对象的基类,这是由 |
Wait() |
使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<>< (继承自 Object) |
Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。 (继承自 Object) |
Wait(Int64, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。 (继承自 Object) |
显式接口实现
IJavaPeerable.Disposed() |
远程对象的基类,这是由 |
IJavaPeerable.DisposeUnlessReferenced() |
远程对象的基类,这是由 |
IJavaPeerable.Finalized() |
远程对象的基类,这是由 |
IJavaPeerable.JniManagedPeerState |
远程对象的基类,这是由 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
远程对象的基类,这是由 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
远程对象的基类,这是由 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
远程对象的基类,这是由 |
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
远程对象的基类,这是由 |
GetJniTypeName(IJavaPeerable) |
远程对象的基类,这是由 |