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 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
Binder() |
默認建構函式只會初始化 物件。 |
Binder(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
Binder(String) |
建立原始 Binder 物件 (token) 以及描述元的建構函式。 |
屬性
CallingPid |
傳回傳送您目前正在處理之交易的進程標識碼。 |
CallingUid |
傳回指派給已處理目前交易之進程的Linux UID。 |
CallingUidOrThrow |
傳回指派給目前正在處理之交易之進程的Linux UID。 |
CallingUserHandle |
傳回指派給處理程式的UserHandle,該進程會傳送您目前正在處理的交易。 |
CallingWorkSourceUid |
傳回呼叫端所設定的工作來源。 |
Class |
傳回這個 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
InterfaceDescriptor |
默認實作會傳回空的介面名稱。 |
IsBinderAlive |
要新增
|
JniIdentityHashCode |
遠端物件的基類,這是所 |
JniPeerMembers |
遠端物件的基類,這是所 |
PeerReference |
遠端物件的基類,這是所 |
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
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 <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</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) |
遠端物件的基類,這是所 |