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?)

Antworten

Instanziieren 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.

Antworten auf die Frage(0)

Ihre Antwort auf die Frage