Comment exécuter une activité en arrière-plan dans Android
Dans mon application, j'ai besoin d'envoyer le message texte à l'utilisateur après un certain laps de temps. Pour cela j'ai besoin pour exécuter l'envoi d'un message de code en arrière-plan. Je suis à l'aide de l'alarme manager pour démarrer l'activité à un moment précis.Que faire? Est-il une autre façon de le faire?
source d'informationauteur picaso
Vous devez vous connecter pour publier un commentaire.
Vous pourriez regarder dans l'aide de Services qui sont d'abord de l'INTERFACE utilisateur-moins d'Activités.
Pour ceux qui veulent le faire avec une Activité, et non pas par le biais d'un service (il peut y avoir des cas où cela est nécessaire), je l'ai fait par le démarrage de l'Activité de la manière habituelle, puis dans l'Activité de onCreate je l'ai envoyé à l'arrière-plan en appelant moveTaskToBack(true) .
Voir L'envoi d'une application en cours d'exécution à l'arrière-plan par programmation
Si vous utilisez cette méthode, vous devez ajouter un supplément d'info à l'intention de qui vous de commencer l'Activité, de sorte qu'il sait dans onCreate qu'il doit envoyer à l'arrière-plan. Vous faites cela en appelant l'Intention de putExtra méthode. Dans l'Activité du onCreate, vous obtenez l'appel Intention avec getIntent, puis récupérer les infos de vous y mettre avec getStringExtra, par exemple (j'ai utilisé une chaîne d'infos supplémentaires). Consultez la documentation de l'Intention de la classe.
oui.vous devriez utiliser le Service pour atteindre cet objectif.Ils peuvent s'exécuter en arrière-plan jusqu'explicitement fermée.
IntentService est une autre alternative
http://developer.android.com/guide/topics/fundamentals/services.html
Cela peut aider..
Ajoutez à cela manifeste android..:
uses-permission android:name="android.la permission.ACCESS_BACKGROUND_SERVICE"
Également utiliser AsyncClass pour votre long/processus d'arrière-plan..Comme ça.:
http://developer.android.com/reference/android/os/AsyncTask.html
Il est recommandé d'utiliser Services pour atteindre cet objectif, mais j'ai rencontré de situation similaire quand il a besoin de quelque chose à partir d'une autre application et l'intention pour le service n'est pas exporté, de sorte que le seul moyen de démarrer le service est au début de l'activité - et de garder l'utilisateur de mon application j'ai besoin de garder mon activité au premier plan.
Dans ce cas, il est possible de commencer l'autre activité dans un
AsyncTask
, puis dansonPostExecute
redémarrage de moi-même.