¿Se recomienda crear instancias de una AsyncTask de un WakefulBroadcastReceiver?
Puedo instanciar unAsyncTask
deWakefulBroadcastReceiver
(vermi motivación para favorecerAsyncTask
terminadoService
), p.ej.,
public abstract class AlarmReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
new AsyncTask<Void,Void,Void>(){
@Override
protected Void doInBackground(Void... v) {
while (true) {
SystemClock.sleep(7000);
Log.w("", "alive");
}
}
}.execute();
}
}
¿Pero es esto recomendable? En particular,¿hay problemas de ciclo de vida? asociado con la creación de instancias de unAsyncTask
a partir de unaWakefulBroadcastReceiver
? Por ejemplo, ¿puede miAsyncTask
ser asesinado prematuramente?
(Sé que puedoenvolver la AsyncTask dentro de un servicio, pero esto parece exagerado?)
ResponderInstanciar unAsyncTask
a partir de unaWakefulBroadcastReceiver
no es aconsejable, ya que cualquier cosa instanciada por unBroadcastReceiver
será considerado eliminable por el sistema una vez que elonReceive()
el método devuelve, es decir, el sistema puede matarAsyncTask
. Gracias acorsair992.
Verciclo de vida del proceso para más detalles sobre procesos eliminables.