Binder クラス

定義

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

[Android.Runtime.Register("android/os/Binder", DoNotGenerateAcw=true)]
public class Binder : Java.Lang.Object, Android.OS.IBinder, IDisposable
[<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.Serviceandroid.app.Activity、または android.content.ContentProvider) のコンテキスト内で実行する必要があります。これにより、システムはプロセスを実行したままにする必要があります。

プロセスが終了する可能性がある状況に留意する必要があります。そのため、後で新しいバインダーを再作成し、プロセスが再び開始されたときに再アタッチする必要があります。 たとえば、 android.app.Activity内でこれを使用している場合、アクティビティのプロセスは、アクティビティが開始されないたびに強制終了される可能性があります。後でアクティビティを再作成する場合は、新しいバインダーを作成し、もう一度正しい場所に戻す必要があります。アクティビティの再作成を伴わない別の理由 (ブロードキャストを受信するなど) のためにプロセスが開始される可能性があることに注意する必要があります。新しいバインダーを作成するコード。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
Binder()

既定のコンストラクターは、オブジェクトを初期化するだけです。

Binder(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

Binder(String)

記述子と共に生の Binder オブジェクト (トークン) を作成するためのコンストラクター。

プロパティ

名前 説明
CallingPid

処理中の現在のトランザクションを送信したプロセスの ID を返します。

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

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

(継承元 JavaObject)
JniPeerMembers

この型の JNI ピア メンバー メタデータを提供します。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

名前 説明
AttachInterface(IInterface, String)

特定のインターフェイスをバインダーに関連付けるための便利な方法。

ClearCallingIdentity()

現在のスレッドで受信 IPC の ID をリセットします。

ClearCallingWorkSource()

このスレッドの作業ソースをクリアします。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

(継承元 JavaObject)
Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

(継承元 JavaObject)
Dump(FileDescriptor, PrintWriter, String[])

オブジェクトの状態を特定のストリームに出力します。

Dump(FileDescriptor, String[])

より便利なバージョンの #dump(FileDescriptor, PrintWriter, String[])を呼び出すために実装されています。

DumpAsync(FileDescriptor, String[])

#dump(FileDescriptor, String[])と同様ですが、ターゲットが非同期的に実行されるようにします。

Equals(Object)

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
FlushPendingCommands()

現在のスレッドで保留中の Binder コマンドをカーネル ドライバーにフラッシュします。

GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
JoinThreadPool()

呼び出し元のスレッドを IPC スレッド プールに追加します。

LinkToDeath(IBinderDeathRecipient, Int32)

ローカル実装は no-opです。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
OnTransact(Int32, Parcel, Parcel, Int32)

既定の実装は、false を返すスタブです。

PingBinder()

既定の実装では常に true が返されます。ここで取得した場合、オブジェクトは有効です。

QueryLocalInterface(String)

#attachInterface attachInterface()に指定された情報を使用して、要求された記述子と一致する場合は、関連付けられたIInterfaceを返します。

RestoreCallingIdentity(Int64)

現在のスレッド上の受信 IPC の ID を、 #clearCallingIdentityによって返された以前の ID に復元します。

RestoreCallingWorkSource(Int64)

#setCallingWorkSourceUid(int)または#clearCallingWorkSource()によって返されたトークンを使用して、このスレッドの作業ソースを復元します。

SetCallingWorkSourceUid(Int32)

このスレッドの作業ソースを設定します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

(継承元 JavaObject)
ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
Transact(Int32, Parcel, Parcel, TransactionFlags)

既定の実装では、パーセルと onTransact 呼び出しが巻き戻されます。

UnlinkToDeath(IBinderDeathRecipient, Int32)

ローカル実装は no-opです。

UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
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()

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

(継承元 JavaObject)
IJavaPeerable.Finalized()

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

(継承元 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

リモートテーブル オブジェクトの基本クラス。 IBinderによって定義された軽量リモート プロシージャ 呼び出しメカニズムの中核部分です。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象