BroadcastReceiver onReceive () thread seguro?
¿ onReceive()
método onReceive()
del thread BroadcastReceiver
seguro o necesito implementar la sincronización por mi cuenta?
Si tengo alguna variable de nivel de clase que está siendo utilizada dentro del método onReceive()
, y el método onReceive()
se llama varias veces muy rápidamente, ¿causaría un problema?
public class MyBroadCastReceiver extends BroadcastReceiver { boolean isFirstTrigger = true; @Override public void onReceive(Context context, Intent arg1) { if(isFirstTrigger) { //Do something time consuming isFirstTrigger = false; } }
¿El método onReceive () del thread BroadcastReceiver es seguro o necesito implementar la sincronización por mi cuenta?
Sólo se llamará al hilo principal de la aplicación. Por lo tanto, es thread-safe con respecto a cualquier otra cosa que se ejecuta en el hilo de la aplicación principal.
Si tengo alguna variable de nivel de clase que está siendo utilizada dentro del método onReceive (), y el método onReceive () se llama varias veces muy rápidamente, ¿causaría un problema?
Si BroadcastReceiver
está registrado en el manifiesto, se crea una nueva instancia para cada difusión. Esta es la razón por la que no suele ver miembros de datos en un BroadcastReceiver
.