Binder Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da 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
- Ereditarietà
- Attributi
- Implementazioni
Commenti
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da IBinder
. Questa classe è un'implementazione di IBinder che fornisce un'implementazione locale standard di tale oggetto.
La maggior parte degli sviluppatori non implementerà direttamente questa classe, usando lo strumento aidl per descrivere l'interfaccia desiderata, perché generi la sottoclasse binder appropriata. È tuttavia possibile derivare direttamente da Binder per implementare il proprio protocollo RPC personalizzato o semplicemente creare un'istanza di un oggetto Binder non elaborato direttamente da usare come token che può essere condiviso tra i processi.
Questa classe è solo una primitiva IPC di base; non ha alcun impatto sul ciclo di vita di un'applicazione ed è valido solo a condizione che il processo creato continui a essere eseguito. Per usare correttamente questa operazione, è necessario eseguire questa operazione nel contesto di un componente dell'applicazione di primo livello (, android.app.Service
android.app.Activity
o android.content.ContentProvider
) che consenta al sistema di sapere che il processo deve rimanere in esecuzione.
È necessario tenere presente le situazioni in cui il processo potrebbe andare via e quindi richiedere di ricreare un nuovo Binder e ricollegarlo all'avvio del processo. Ad esempio, se si usa questo elemento all'interno di un android.app.Activity
oggetto , il processo dell'attività può essere terminato ogni volta che l'attività non viene avviata. Se l'attività viene ricreata in un secondo momento, sarà necessario creare un nuovo Binder e riportarla nuovamente alla posizione corretta. È necessario essere consapevoli che il processo può essere avviato per un altro motivo (ad esempio per ricevere una trasmissione) che non comporta la ricreazione dell'attività e quindi l'esecuzione. codice per creare un nuovo binder.
Documentazione java per android.os.Binder
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Costruttori
Binder() |
Il costruttore predefinito inizializza semplicemente l'oggetto . |
Binder(IntPtr, JniHandleOwnership) |
Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime. |
Binder(String) |
Costruttore per la creazione di un oggetto Binder non elaborato (token) insieme a un descrittore. |
Proprietà
CallingPid |
Restituisce l'ID del processo che ha inviato la transazione corrente in fase di elaborazione. |
CallingUid |
Restituisce l'UID Linux assegnato al processo che ha inviato la transazione corrente in fase di elaborazione. |
CallingUidOrThrow |
Restituisce l'UID Linux assegnato al processo che ha inviato la transazione in fase di elaborazione. |
CallingUserHandle |
Restituisce l'oggetto UserHandle assegnato al processo che ha inviato la transazione corrente in fase di elaborazione. |
CallingWorkSourceUid |
Restituisce l'origine di lavoro impostata dal chiamante. |
Class |
Restituisce la classe di runtime di questo |
Handle |
Handle per l'istanza di Android sottostante. (Ereditato da Object) |
InterfaceDescriptor |
L'implementazione predefinita restituisce un nome di interfaccia vuoto. |
IsBinderAlive |
Da aggiungere
|
JniIdentityHashCode |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
JniPeerMembers |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
PeerReference |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
Metodi
AttachInterface(IInterface, String) |
Metodo pratico per l'associazione di un'interfaccia specifica al binder. |
ClearCallingIdentity() |
Reimpostare l'identità dell'IPC in ingresso nel thread corrente. |
ClearCallingWorkSource() |
Cancella l'origine di lavoro in questo thread. |
Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
Dispose() |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
Dispose(Boolean) |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
Dump(FileDescriptor, PrintWriter, String[]) |
Stampare lo stato dell'oggetto nel flusso specificato. |
Dump(FileDescriptor, String[]) |
Implementato per chiamare la versione |
DumpAsync(FileDescriptor, String[]) |
Come |
Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
FlushPendingCommands() |
Scaricare tutti i comandi binder in sospeso nel thread corrente nel driver del kernel. |
GetHashCode() |
Restituisce un valore del codice hash per l'oggetto. (Ereditato da Object) |
JavaFinalize() |
Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . (Ereditato da Object) |
JoinThreadPool() |
Aggiungere il thread chiamante al pool di thread IPC. |
LinkToDeath(IBinderDeathRecipient, Int32) |
L'implementazione locale è no-op. |
Notify() |
Riattiva un singolo thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
NotifyAll() |
Riattiva tutti i thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
OnTransact(Int32, Parcel, Parcel, Int32) |
L'implementazione predefinita è uno stub che restituisce false. |
PingBinder() |
L'implementazione predefinita restituisce sempre true. Se si è arrivati qui, l'oggetto è attivo. |
QueryLocalInterface(String) |
Usare le informazioni fornite per |
RestoreCallingIdentity(Int64) |
Ripristinare l'identità dell'IPC in ingresso nel thread corrente a un'identità precedentemente restituita da |
RestoreCallingWorkSource(Int64) |
Ripristina l'origine di lavoro in questo thread usando un token restituito da |
SetCallingWorkSourceUid(Int32) |
Imposta l'origine di lavoro per questo thread. |
SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
ToArray<T>() |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
ToString() |
Restituisce una rappresentazione di stringa dell'oggetto. (Ereditato da Object) |
Transact(Int32, Parcel, Parcel, TransactionFlags) |
L'implementazione predefinita riavvolge i pacchi e chiama onTransact. |
UnlinkToDeath(IBinderDeathRecipient, Int32) |
L'implementazione locale è no-op. |
UnregisterFromRuntime() |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
Wait() |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>. (Ereditato da Object) |
Wait(Int64, Int32) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Wait(Int64) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IJavaPeerable.Disposed() |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
IJavaPeerable.DisposeUnlessReferenced() |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
IJavaPeerable.Finalized() |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
IJavaPeerable.JniManagedPeerState |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo di tipo controllato dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |
GetJniTypeName(IJavaPeerable) |
Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da |