Binder Classe

Definição

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por 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
Herança
Atributos
Implementações

Comentários

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder. Essa classe é uma implementação do IBinder que fornece a implementação local padrão de tal objeto.

A maioria dos desenvolvedores não implementará essa classe diretamente, em vez disso, usará a ferramenta auxiliar para descrever a interface desejada, fazendo com que ela gere a subclasse binder apropriada. No entanto, você pode derivar diretamente do Binder para implementar seu próprio protocolo RPC personalizado ou simplesmente instanciar um objeto Binder bruto diretamente para usar como um token que pode ser compartilhado entre processos.

Essa classe é apenas um primitivo de IPC básico; ele não tem impacto no ciclo de vida de um aplicativo e é válido apenas desde que o processo que o criou continue a ser executado. Para usá-lo corretamente, você deve estar fazendo isso no contexto de um componente de aplicativo de nível superior (um android.app.Service, android.app.Activityou android.content.ContentProvider) que permite que o sistema saiba que seu processo deve permanecer em execução.

Você deve ter em mente as situações em que seu processo pode desaparecer e, portanto, exigir que você crie novamente um novo Associador e anexe-o novamente quando o processo for iniciado novamente. Por exemplo, se você estiver usando isso dentro de um android.app.Activity, o processo de sua atividade poderá ser encerrado sempre que a atividade não for iniciada; se a atividade for recriada posteriormente, você precisará criar um novo Associador e entregá-la novamente ao local correto; você precisa estar ciente de que seu processo pode ser iniciado por outro motivo (por exemplo, para receber uma transmissão) que não envolverá a recriação da atividade e, portanto, executar seu código para criar um novo Associador.

Java documentação para android.os.Binder.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Construtores

Nome Description
Binder()

O construtor padrão apenas inicializa o objeto.

Binder(IntPtr, JniHandleOwnership)

Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime.

Binder(String)

Construtor para criar um objeto Binder bruto (token) juntamente com um descritor.

Propriedades

Nome Description
CallingPid

Retorne a ID do processo que enviou a transação atual que está sendo processada.

CallingUid

Retorne a UID do Linux atribuída ao processo que enviou a transação atual que está sendo processada.

CallingUidOrThrow

Retorne a UID do Linux atribuída ao processo que enviou a transação que está sendo processada no momento.

CallingUserHandle

Retorne o UserHandle atribuído ao processo que enviou a transação atual que está sendo processada.

CallingWorkSourceUid

Retorna o conjunto de fontes de trabalho definido pelo chamador.

Class

Retorna a classe de runtime deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
InterfaceDescriptor

A implementação padrão retorna um nome de interface vazio.

IsBinderAlive

A ser adicionado

        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

Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade.

(Herdado de Object)
JniManagedPeerState

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder.

(Herdado de JavaObject)
JniPeerMembers

Fornece metadados de membro par JNI para esse tipo.

PeerReference

Obtém a referência de objeto JNI para este par Java.

(Herdado de Object)
ThresholdClass

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

ThresholdType

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

Métodos

Nome Description
AttachInterface(IInterface, String)

Método de conveniência para associar uma interface específica ao Associador.

ClearCallingIdentity()

Redefina a identidade do IPC de entrada no thread atual.

ClearCallingWorkSource()

Limpa a fonte de trabalho neste thread.

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder.

(Herdado de JavaObject)
Dispose()

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
Dispose(Boolean)

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
DisposeUnlessReferenced()

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder.

(Herdado de JavaObject)
Dump(FileDescriptor, PrintWriter, String[])

Imprima o estado do objeto no fluxo fornecido.

Dump(FileDescriptor, String[])

Implementado para chamar a versão #dump(FileDescriptor, PrintWriter, String[])mais conveniente.

DumpAsync(FileDescriptor, String[])

Como #dump(FileDescriptor, String[]), mas garante que o destino seja executado de forma assíncrona.

Equals(Object)

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder.

(Herdado de JavaObject)
Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
FlushPendingCommands()

Libere todos os comandos do Binder pendentes no thread atual para o driver do kernel.

GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
JoinThreadPool()

Adicione o thread de chamada ao pool de threads do IPC.

LinkToDeath(IBinderDeathRecipient, Int32)

A implementação local é um no-op.

Notify()

Ativa um único thread que está aguardando no monitor deste objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
OnTransact(Int32, Parcel, Parcel, Int32)

A implementação padrão é um stub que retorna false.

PingBinder()

A implementação padrão sempre retorna true – se você chegou aqui, o objeto está ativo.

QueryLocalInterface(String)

Use as informações fornecidas para #attachInterface attachInterface() retornar o associado IInterface se corresponder ao descritor solicitado.

RestoreCallingIdentity(Int64)

Restaure a identidade do IPC de entrada no thread atual de volta para uma identidade anterior que foi retornada por #clearCallingIdentity.

RestoreCallingWorkSource(Int64)

Restaura a fonte de trabalho neste thread usando um token retornado por #setCallingWorkSourceUid(int) ou #clearCallingWorkSource().

SetCallingWorkSourceUid(Int32)

Define a fonte de trabalho para este thread.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder.

(Herdado de JavaObject)
ToArray<T>()

Cria uma matriz gerenciada com base nesse wrapper de matriz Java.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
Transact(Int32, Parcel, Parcel, TransactionFlags)

A implementação padrão retrocede as parcelas e chamadas emTransact.

UnlinkToDeath(IBinderDeathRecipient, Int32)

A implementação local é um no-op.

UnregisterFromRuntime()

Cancela o registro desse par Java do runtime de interoperabilidade.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<>

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder.

(Herdado de JavaObject)
IJavaPeerable.Finalized()

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder.

(Herdado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder.

(Herdado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder.

(Herdado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder.

(Herdado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder.

(Herdado de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder.

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo marcada por runtime do Android.

JavaCast<TResult>(IJavaObject)

Classe base para um objeto remoto, a parte central de um mecanismo de chamada de procedimento remoto leve definido por IBinder.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a