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 プリミティブにすぎません。アプリケーションのライフサイクルに影響はなく、アプリケーションを作成したプロセスが引き続き実行されている限り有効です。 これを正しく使用するには、プロセスを実行し続ける必要があることをシステムに知らせる最上位レベルのアプリケーション コンポーネント (a android.app.Service
、 android.app.Activity
または android.content.ContentProvider
) のコンテキスト内で実行する必要があります。
プロセスが終了する可能性がある状況に留意する必要があります。そのため、後で新しいバインダーを再作成し、プロセスが再び開始されたときに再アタッチする必要があります。 たとえば、アクティビティ android.app.Activity
が開始されないたびにアクティビティのプロセスが強制終了される可能性があります。アクティビティが後で再作成された場合は、新しいバインダーを作成して、もう一度正しい場所に戻す必要があります。アクティビティの再作成を伴わない別の理由 (ブロードキャストの受信など) でプロセスが開始される可能性があることに注意する必要があります。新しいバインダーを作成するコード。
の Java ドキュメントandroid.os.Binder
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
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 |
リモートテーブル オブジェクトの基本クラス。リモート プロシージャ呼び出しメカニズムで定義された |
JniPeerMembers |
リモートテーブル オブジェクトの基本クラス。リモート プロシージャ呼び出しメカニズムで定義された |
PeerReference |
リモートテーブル オブジェクトの基本クラス。リモート プロシージャ呼び出しメカニズムで定義された |
ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
AttachInterface(IInterface, String) |
特定のインターフェイスをバインダーに関連付けるための便利な方法。 |
ClearCallingIdentity() |
現在のスレッドで受信 IPC の ID をリセットします。 |
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() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
OnTransact(Int32, Parcel, Parcel, Int32) |
既定の実装は、false を返すスタブです。 |
PingBinder() |
既定の実装では常に true が返されます。ここで取得した場合、オブジェクトは有効です。 |
QueryLocalInterface(String) |
指定された情報を使用して |
RestoreCallingIdentity(Int64) |
現在のスレッドの受信 IPC の ID を、以前に返された ID に復元します |
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> を受け<取ります。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</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) |
リモートテーブル オブジェクトの基本クラス。リモート プロシージャ呼び出しメカニズムで定義された |