Binder クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
リモートテーブル オブジェクトの基本クラス。 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.Service、 android.app.Activity、または android.content.ContentProvider) のコンテキスト内で実行する必要があります。これにより、システムはプロセスを実行したままにする必要があります。
プロセスが終了する可能性がある状況に留意する必要があります。そのため、後で新しいバインダーを再作成し、プロセスが再び開始されたときに再アタッチする必要があります。 たとえば、 android.app.Activity内でこれを使用している場合、アクティビティのプロセスは、アクティビティが開始されないたびに強制終了される可能性があります。後でアクティビティを再作成する場合は、新しいバインダーを作成し、もう一度正しい場所に戻す必要があります。アクティビティの再作成を伴わない別の理由 (ブロードキャストを受信するなど) のためにプロセスが開始される可能性があることに注意する必要があります。新しいバインダーを作成するコード。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| Binder() |
既定のコンストラクターは、オブジェクトを初期化するだけです。 |
| Binder(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
| Binder(String) |
記述子と共に生の Binder オブジェクト (トークン) を作成するためのコンストラクター。 |
プロパティ
| 名前 | 説明 |
|---|---|
| CallingPid |
処理中の現在のトランザクションを送信したプロセスの ID を返します。 |
| CallingUid |
処理中の現在のトランザクションを送信したプロセスに割り当てられた Linux UID を返します。 |
| CallingUidOrThrow |
現在処理中のトランザクションを送信したプロセスに割り当てられている Linux UID を返します。 |
| CallingUserHandle |
処理中の現在のトランザクションを送信したプロセスに割り当てられた UserHandle を返します。 |
| CallingWorkSourceUid |
呼び出し元によって設定された作業ソースを返します。 |
| Class |
この |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| InterfaceDescriptor |
既定の実装では、空のインターフェイス名が返されます。 |
| IsBinderAlive |
追加する
|
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
リモートテーブル オブジェクトの基本クラス。 |
| 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) |
リモートテーブル オブジェクトの基本クラス。 |
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| DisposeUnlessReferenced() |
リモートテーブル オブジェクトの基本クラス。 |
| Dump(FileDescriptor, PrintWriter, String[]) |
オブジェクトの状態を特定のストリームに出力します。 |
| Dump(FileDescriptor, String[]) |
より便利なバージョンの |
| DumpAsync(FileDescriptor, String[]) |
|
| Equals(Object) |
リモートテーブル オブジェクトの基本クラス。 |
| 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) |
|
| RestoreCallingIdentity(Int64) |
現在のスレッド上の受信 IPC の ID を、 |
| RestoreCallingWorkSource(Int64) |
|
| SetCallingWorkSourceUid(Int32) |
このスレッドの作業ソースを設定します。 |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
リモートテーブル オブジェクトの基本クラス。 |
| 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() |
リモートテーブル オブジェクトの基本クラス。 |
| IJavaPeerable.Finalized() |
リモートテーブル オブジェクトの基本クラス。 |
| IJavaPeerable.JniObjectReferenceControlBlock |
リモートテーブル オブジェクトの基本クラス。 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
リモートテーブル オブジェクトの基本クラス。 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
リモートテーブル オブジェクトの基本クラス。 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
リモートテーブル オブジェクトの基本クラス。 |
| IJavaPeerable.UnregisterFromRuntime() |
リモートテーブル オブジェクトの基本クラス。 |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
リモートテーブル オブジェクトの基本クラス。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|