IntentService sera tué après j'ai arrêter ma demande

Je me réfère à android considérations de conception: AsyncTask vs Service (IntentService?)

En fonction de la discussion, AsyncTask ne convient pas, car il est étroitement lié" à votre Activité

Donc, je lance un Thread (je suppose que l'AsyncTask et du Fil appartiennent à la même catégorie), ont une infinité de course boucle et fait les essais suivants.

  • Je quitter ma demande, en gardant en appuyant sur la touche programmable retour, jusqu'à ce que j'ai vu l'écran d'accueil. Fil est toujours en cours d'exécution.
  • Je tuer ma demande, en allant à Gérer les applications -> App -> Forcer l'arrêt. Thread est arrêté.

Donc, je m'attendre après je change de Thread à Service, mon Service gardera en vie, même après que j'ai quitter ou tuer mon application.


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>

Cependant, mon constat est que,

  • Je quitter ma demande, en gardant en appuyant sur la touche programmable retour, jusqu'à ce que j'ai vu l'écran d'accueil. Le Service est encore en cours d'exécution.
  • Je tuer ma demande, en allant à Gérer les applications -> App -> Forcer l'arrêt. Le Service est arrêté.

Il semble que le comportement de Service et Thread sont les mêmes. Alors, pourquoi je devrais utiliser Service au lieu de Thread? Est-il quelque chose que j'avais oublié? Je pensais que mon Service supposons que pour continuer à fonctionner, même après que j'ai tuer mon application?

OriginalL'auteur Cheok Yan Cheng | 2012-06-28

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *