IntentService wird beendet, nachdem ich meine Anwendung beendet habe
Ich beziehe mich aufÜberlegungen zum Android-Design: AsyncTask vs Service (IntentService?)
Nach der Diskussion,AsyncTask ist nicht geeignet, da es eng an Ihre Aktivität gebunden ist
Also starte ich einThread
(Ich nehme an, AsyncTask und Thread gehören zur selben Kategorie), haben eine Endlos-Laufschleife und haben die folgenden Tests durchgeführt.
Also erwarte ich nach meinem Wechsel vonThread
zuService
, meinService
werde auch nach mir am Leben bleibenVerlassen odertöten meine App.
Intent intent = new Intent(this, SyncWithCloudService.class);
startService(intent);
public class SyncWithCloudService extends IntentService {
public SyncWithCloudService() {
super("SyncWithCloudService");
}
@Override
protected void onHandleIntent(Intent intent) {
int i = 0;
while (true) {
Log.i("CHEOK", "Service i is " + (i++));
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Log.i("CHEOK", "", ex);
}
}
}
}
// Doesn't matter whether I use "android:process" or not.
<service
android:name="com.xxx.xml.SyncWithCloudService"
android:process=".my_process" >
</service>
Meine Erkenntnis ist jedoch, dass
I Verlassen meine Anwendung, indem Sie die Soft-Taste "Zurück" gedrückt halten, bis ich den Startbildschirm sah. Dienst läuft noch.I töten Meine Bewerbung geht anApps verwalten -> App -> Stopp erzwingen. Der Dienst wurde gestoppt.Es scheint, dass das Verhalten vonService
undThread
sind gleich. Also, warum sollte ich verwendenService
anstattThread
? Gibt es etwas, das ich verpasst hatte? Ich dachte meineService
Angenommen, ich laufe weiter, auch nachdem ich meine App beendet habe?