Binder Clase

Definición

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto 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
Herencia
Atributos
Implementaciones

Comentarios

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder. Esta clase es una implementación de IBinder que proporciona una implementación local estándar de este objeto.

La mayoría de los desarrolladores no implementarán esta clase directamente, sino que usarán la herramienta auxiliar para describir la interfaz deseada, teniendo que generar la subclase Binder adecuada. Sin embargo, puede derivar directamente de Binder para implementar su propio protocolo RPC personalizado o simplemente crear instancias de un objeto Binder sin procesar directamente para usarlo como token que se puede compartir entre procesos.

Esta clase es simplemente un primitivo IPC básico; no tiene ningún impacto en el ciclo de vida de una aplicación y solo es válido siempre que el proceso que creó continúa ejecutándose. Para usarlo correctamente, debe hacerlo dentro del contexto de un componente de aplicación de nivel superior (un android.app.Service, android.app.Activityo android.content.ContentProvider) que permita al sistema saber que el proceso debe permanecer en ejecución.

Debe tener en cuenta las situaciones en las que el proceso podría desaparecer y, por lo tanto, requerir que más adelante vuelva a crear un nuevo enlazador y volver a adjuntarlo cuando el proceso se inicie de nuevo. Por ejemplo, si usa esto dentro de , android.app.Activityel proceso de la actividad puede eliminarse cada vez que no se inicie la actividad; si la actividad se vuelve a crear más adelante, deberá crear un nuevo enlazador y volver a entregarlo al lugar correcto; debe tener en cuenta que el proceso puede iniciarse por otro motivo (por ejemplo, para recibir una difusión) que no implique volver a crear la actividad y, por tanto, ejecutarlo de nuevo. su código para crear un nuevo enlazador.

Java documentación para android.os.Binder.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Constructores

Nombre Description
Binder()

El constructor predeterminado simplemente inicializa el objeto .

Binder(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución.

Binder(String)

Constructor para crear un objeto Binder sin formato (token) junto con un descriptor.

Propiedades

Nombre Description
CallingPid

Devuelve el identificador del proceso que le envió la transacción actual que se está procesando.

CallingUid

Devuelve el UID de Linux asignado al proceso que le envió la transacción actual que se está procesando.

CallingUidOrThrow

Devuelve el UID de Linux asignado al proceso que envió la transacción que se está procesando actualmente.

CallingUserHandle

Devuelve el UserHandle asignado al proceso que le envió la transacción actual que se está procesando.

CallingWorkSourceUid

Devuelve el origen de trabajo establecido por el autor de la llamada.

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
InterfaceDescriptor

La implementación predeterminada devuelve un nombre de interfaz vacío.

IsBinderAlive

Por agregar

        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

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder.

(Heredado de JavaObject)
JniPeerMembers

Proporciona metadatos de miembro del mismo nivel de JNI para este tipo.

PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(Heredado de Object)
ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

Métodos

Nombre Description
AttachInterface(IInterface, String)

Método de conveniencia para asociar una interfaz específica con binder.

ClearCallingIdentity()

Restablezca la identidad del IPC entrante en el subproceso actual.

ClearCallingWorkSource()

Borra el origen de trabajo en este subproceso.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder.

(Heredado de JavaObject)
Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder.

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

Imprima el estado del objeto en la secuencia especificada.

Dump(FileDescriptor, String[])

Implementado para llamar a la versión #dump(FileDescriptor, PrintWriter, String[])más conveniente.

DumpAsync(FileDescriptor, String[])

Al igual #dump(FileDescriptor, String[])que , pero garantiza que el destino se ejecuta de forma asincrónica.

Equals(Object)

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder.

(Heredado de JavaObject)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
FlushPendingCommands()

Vaciar los comandos binder pendientes en el subproceso actual al controlador de kernel.

GetHashCode()

Devuelve un valor de código hash para el objeto .

(Heredado de Object)
JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
JoinThreadPool()

Agregue el subproceso de llamada al grupo de subprocesos IPC.

LinkToDeath(IBinderDeathRecipient, Int32)

La implementación local es un no-op.

Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

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

La implementación predeterminada es un código auxiliar que devuelve false.

PingBinder()

La implementación predeterminada siempre devuelve true: si ha llegado aquí, el objeto está activo.

QueryLocalInterface(String)

Use la información proporcionada para #attachInterface attachInterface() devolver el asociado IInterface si coincide con el descriptor solicitado.

RestoreCallingIdentity(Int64)

Restaure la identidad del IPC entrante en el subproceso actual a una identidad previamente devuelta por #clearCallingIdentity.

RestoreCallingWorkSource(Int64)

Restaura el origen de trabajo en este subproceso mediante un token devuelto por #setCallingWorkSourceUid(int) o #clearCallingWorkSource().

SetCallingWorkSourceUid(Int32)

Establece el origen de trabajo de este subproceso.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder.

(Heredado de JavaObject)
ToArray<T>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto .

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

La implementación predeterminada rebobina las parcelas y llama a onTransact.

UnlinkToDeath(IBinderDeathRecipient, Int32)

La implementación local es un no-op.

UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><>

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder.

(Heredado de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder.

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Clase base para un objeto remoto, la parte principal de un mecanismo ligero de llamada a procedimiento remoto definido por IBinder.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a