IntentService morirá después de que detenga mi aplicación
Me estoy refiriendo aConsideraciones de diseño de android: AsyncTask vs Service (IntentService?)
Según la discusión,AsyncTask no se adapta, porque está estrechamente "vinculada" a su Actividad
Entonces, lanzo unThread
(Supongo que AsyncTask y Thread pertenecen a la misma categoría), tienen un bucle infinito y realizaron las siguientes pruebas.
Entonces, espero que después de que cambie deThread
aService
miService
mantendrá vivo incluso después de que yodejar omatar mi aplicación
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>
Sin embargo, mi descubrimiento es que,
I dejar Mi aplicación, presionando la tecla de función Atrás hasta que vi la pantalla de inicio. El servicio todavía se está ejecutando.I matar mi solicitud, yendo aAdministrar aplicaciones -> Aplicación -> Forzar parada. Se detiene el servicio.Parece que el comportamiento deService
yThread
son lo mismo. Entonces, ¿por qué debería usarService
en lugar deThread
? ¿Hay algo que haya perdido? Pensé que miService
¿Supongo que seguir corriendo, incluso después de que mato mi aplicación?