Рекомендуется ли создавать AsyncTask из WakefulBroadcastReceiver?
Я могу создать экземплярAsyncTask
отWakefulBroadcastReceiver
(увидетьмоя мотивация для поддержкиAsyncTask
надService
), например,
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();
}
}
Но рекомендуется ли это? Особенно,есть ли проблемы жизненного цикла связано с созданиемAsyncTask
изWakefulBroadcastReceiver
? Например, может ли мойAsyncTask
быть преждевременно убитым?
(Я знаю что могуобернуть AsyncTask внутри службы, но это кажется излишним?)
ОтветСозданиеAsyncTask
изWakefulBroadcastReceiver
опрометчиво, так как все, чтоBroadcastReceiver
будет считаться убиваемой системой, как толькоonReceive()
метод возвращает, то есть система может убитьAsyncTask
, Благодаряcorsair992.
Увидетьжизненный цикл процесса для получения более подробной информации об убиваемых процессах.