Condividi tramite


Binder Classe

Definizione

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à
Binder
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.Serviceandroid.app.Activityo 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.Activityoggetto , 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 Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
InterfaceDescriptor

L'implementazione predefinita restituisce un nome di interfaccia vuoto.

IsBinderAlive

Da aggiungere

        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

Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da IBinder.

(Ereditato da Object)
JniPeerMembers

Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da IBinder.

PeerReference

Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da IBinder.

(Ereditato da Object)
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 IBinder.

(Ereditato da Object)
Dispose(Boolean)

Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da IBinder.

(Ereditato da Object)
Dump(FileDescriptor, PrintWriter, String[])

Stampare lo stato dell'oggetto nel flusso specificato.

Dump(FileDescriptor, String[])

Implementato per chiamare la versione #dump(FileDescriptor, PrintWriter, String[])più comoda.

DumpAsync(FileDescriptor, String[])

Come #dump(FileDescriptor, String[]), ma garantisce che la destinazione venga eseguita in modo asincrono.

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 #attachInterface attachInterface() restituire l'oggetto associato IInterface se corrisponde al descrittore richiesto.

RestoreCallingIdentity(Int64)

Ripristinare l'identità dell'IPC in ingresso nel thread corrente a un'identità precedentemente restituita da #clearCallingIdentity.

RestoreCallingWorkSource(Int64)

Ripristina l'origine di lavoro in questo thread usando un token restituito da #setCallingWorkSourceUid(int) o #clearCallingWorkSource().

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 IBinder.

(Ereditato da Object)
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 IBinder.

(Ereditato da Object)
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 IBinder.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da IBinder.

(Ereditato da Object)
IJavaPeerable.Finalized()

Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da IBinder.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da IBinder.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da IBinder.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da IBinder.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da IBinder.

(Ereditato da Object)

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 IBinder.

GetJniTypeName(IJavaPeerable)

Classe di base per un oggetto remotabile, la parte principale di un meccanismo di chiamata di routine remota leggero definito da IBinder.

Si applica a