Wird die Instanziierung einer AsyncTask von einem WakefulBroadcastReceiver empfohlen?
Ich kann ein instanziierenAsyncTask
vonWakefulBroadcastReceiver
(sehenmeine Motivation zu bevorzugenAsyncTask
ÜberService
), z.B.,
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();
}
}
Aber ist das empfehlenswert? Speziell,Gibt es Probleme mit dem Lebenszyklus? im Zusammenhang mit der Instantiierung einesAsyncTask
von einemWakefulBroadcastReceiver
? Zum Beispiel kann meinAsyncTask
vorzeitig getötet werden?
(Ich weiss ich kannSchließen Sie die AsyncTask in einen Dienst ein, aber das scheint übertrieben?)
AntwortenInstanziieren einesAsyncTask
von einemWakefulBroadcastReceiver
ist schlecht beraten, da alles, was durch a instanziiert wirdBroadcastReceiver
wird vom System als tötbar angesehen, sobald dieonReceive()
Methode gibt zurück, d. h. das System kann tötenAsyncTask
. Dank ancorsair992.
SehenProzesslebenszyklus Weitere Details zu tötbaren Prozessen.