Lenguaje

RemoteCallbackList.BeginBroadcast Método

Definición

Use #broadcast(Consumer) en su lugar para garantizar el control adecuado de los procesos congelados.

[Android.Runtime.Register("beginBroadcast", "()I", "GetBeginBroadcastHandler")]
public virtual int BeginBroadcast();
[<Android.Runtime.Register("beginBroadcast", "()I", "GetBeginBroadcastHandler")>]
abstract member BeginBroadcast : unit -> int
override this.BeginBroadcast : unit -> int

Devoluciones

Devuelve el número de interfaces de la difusión, con las que se va a usar #getBroadcastItem para determinar el intervalo de índices que puede proporcionar.

Atributos

Comentarios

Use #broadcast(Consumer) en su lugar para garantizar el control adecuado de los procesos congelados.

Prepárese para empezar a realizar llamadas a las interfaces registradas actualmente. Esto crea una copia de la lista de interfaz, que puede recuperar elementos de mediante #getBroadcastItem. Tenga en cuenta que solo una difusión puede estar activa a la vez, por lo que debe asegurarse de llamarla siempre desde el mismo subproceso (normalmente mediante programación con Handler) o realizar su propia sincronización. Debe llamar cuando #finishBroadcast haya terminado.

Un bucle típico que entrega una difusión tiene este aspecto:

int i = interfaces.beginBroadcast();
            while (i &gt; 0) {
                i--;
                try {
                    interfaces.getBroadcastItem(i).somethingHappened();
                } catch (RemoteException e) {
                    // The RemoteCallbackList will take care of removing
                    // the dead object for us.
                }
            }
            interfaces.finishBroadcast();

Tenga en cuenta que este método solo se admite para #FROZEN_CALLEE_POLICY_UNSET. En el caso de otras directivas, use #broadcast(Consumer) en su lugar.

Java documentación para android.os.RemoteCallbackList.beginBroadcast().

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.

Se aplica a

Consulte también