共用方式為


Binder 類別

定義

遠端物件的基類,這是所 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
繼承
Binder
屬性
實作

備註

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。 這個類別是 IBinder 的實作,可提供這類對象的標準本機實作。

大部分的開發人員都不會直接實作此類別,而是使用 aidl 工具來描述所需的介面,讓它產生適當的 Binder 子類別。 不過,您可以直接衍生自 Binder 來實作自己的自定義 RPC 通訊協定,或直接具現化原始 Binder 物件,以作為可跨進程共用的令牌。

這個類別只是基本的 IPC 基本類型;它不會影響應用程式的生命週期,而且只有在建立應用程式的進程繼續執行時才有效。 若要正確使用此方式,您必須在最上層應用程式元件 (、 android.app.Serviceandroid.app.Activityandroid.content.ContentProvider) 的內容中這麼做,讓系統知道您的進程應該會繼續執行。

您必須記住程式可能會消失的情況,因此,您必須稍後重新建立新的 Binder,並在程式再次啟動時重新附加它。 例如,如果您在 中使用 android.app.Activity,則每當活動未啟動時,您的活動進程可能會終止;如果活動稍後重新建立,您必須建立新的 Binder 並將它交回正確的位置;您必須注意您的程式可能會因為其他原因而啟動(例如接收廣播),而不需要重新建立活動,因此執行用來建立新 Binder 的程式代碼。

android.os.BinderJava 檔。

此頁面的部分是根據 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

傳回這個 Object的運行時間類別。

(繼承來源 Object)
Handle

基礎Android實例的句柄。

(繼承來源 Object)
InterfaceDescriptor

默認實作會傳回空的介面名稱。

IsBinderAlive

要新增

        Note that if you're calling on a local binder, this always returns true
        because your process is alive if you're calling it.
JniIdentityHashCode

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

(繼承來源 Object)
JniPeerMembers

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

PeerReference

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

(繼承來源 Object)
ThresholdClass

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

ThresholdType

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

方法

AttachInterface(IInterface, String)

將特定介面與 Binder 產生關聯的便利方法。

ClearCallingIdentity()

重設目前線程上連入IPC的身分識別。

ClearCallingWorkSource()

清除此線程上的工作來源。

Clone()

建立並傳回這個 對象的複本。

(繼承來源 Object)
Dispose()

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

(繼承來源 Object)
Dispose(Boolean)

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

(繼承來源 Object)
Dump(FileDescriptor, PrintWriter, String[])

將物件的狀態列印到指定的數據流中。

Dump(FileDescriptor, String[])

實作 以呼叫更方便的版本 #dump(FileDescriptor, PrintWriter, String[])

DumpAsync(FileDescriptor, String[])

如同 #dump(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)

如果資訊符合所要求的描述元,請使用 提供給 來 #attachInterface attachInterface() 傳回相關聯的 IInterface

RestoreCallingIdentity(Int64)

將目前線程上連入 IPC 的身分識別還原回 先前由 傳 #clearCallingIdentity回的身分識別。

RestoreCallingWorkSource(Int64)

使用 或 #clearCallingWorkSource()所傳回的#setCallingWorkSourceUid(int)令牌,還原此線程上的工作來源。

SetCallingWorkSourceUid(Int32)

設定此線程的工作來源。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
ToArray<T>()

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
Transact(Int32, Parcel, Parcel, TransactionFlags)

默認實作會倒轉包裹和呼叫 onTransact。

UnlinkToDeath(IBinderDeathRecipient, Int32)

本機實作是無作業。

UnregisterFromRuntime()

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

(繼承來源 Object)
Wait()

讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<>

(繼承來源 Object)
Wait(Int64)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

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

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)

明確介面實作

IJavaPeerable.Disposed()

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

(繼承來源 Object)
IJavaPeerable.DisposeUnlessReferenced()

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

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

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

(繼承來源 Object)
IJavaPeerable.JniManagedPeerState

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

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

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

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

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

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

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

(繼承來源 Object)

擴充方法

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

GetJniTypeName(IJavaPeerable)

遠端物件的基類,這是所 IBinder定義羽量型遠端過程調用機制的核心部分。

適用於