Envoi d'activité à l'arrière-plan sans terminer
Comment puis-je faire une activité, d'aller au fond sans appeler son finish()
méthode et de retour à l'activité Parent qui a commencé? J'ai essayé beaucoup, mais je ne pouvais pas trouver une solution. Donc, si vous les gars pourrait vous aider je vous serais très reconnaissant.
source d'informationauteur 1HaKr
Vous devez vous connecter pour publier un commentaire.
La suivante ne fonctionnera que si l'Activité est en cours d'exécution dans une tâche différente à celle de son parent. Pour atteindre cet objectif, voir http://developer.android.com/guide/topics/manifest/activity-element.html#lmode.
La tâche en cours sera caché, mais son état reste intacte, et quand il est réactivé, il apparaîtra comme il était quand vous l'avez laissé.
Si vous avez des données que vous souhaitez cache /store /processus en arrière-plan, vous pouvez utiliser un AsyncTask ou un Fil.
Lorsque vous êtes prêt à cache /transition de parent, vous voulez faire quelque chose comme ce qui suit dans l'un de vos enfant à l'Activité de méthodes (en supposant que vous avez commencé à l'enfant avec startActivityForResult() )
Fil Approche:
Vous pouvez également utiliser un Gestionnaire si vous avez besoin de communiquer quelque chose de nouveau à partir de votre nouveau thread.
AsyncTask Approche:
L'AsyncTask est pour les situations dans lesquelles vous avez besoin pour traiter quelque chose dans un nouveau thread, mais être en mesure de communiquer avec l'INTERFACE utilisateur processus.
Le déplacement de la tâche en arrière ne va PAS vous assurer de maintenir un état, à moins que vous le faire manuellement, en répondant à la
Activity
événements de cycle de vie.Vous devriez juste le début de la deuxième
Activity
viaIntent
à l'aide destartActivity()
ou, si vous avez besoin de recevoir les résultats de la deuxièmeActivity
utilisezstartActivityForResult()
. Cela vous permet de recevoir un rappel lorsque l'utilisateur termine laActivity
et renvoie à votre premièreActivity
.De départ d'une
Activity
et obtenir des résultats: http://developer.android.com/reference/android/app/Activity.html#StartingActivitiesEssayer:
Si vous utilisez cette manière, la méthode onPause() à partir de CurrentActivity seront appelés, et si vous avez une variable statique (comme un lecteur multimédia objet) dans CurrentActivity il continuera à exister (ou de jouer si il joue)..
Je suis sur que dans ma demande, mais j'ai trouvé une meilleure façon de le faire avec les services.
Espérons que cela vous aidera!
Simplement
protected void minimizeApp() {
L'intention startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intention.CATEGORY_HOME);
startMain.setFlags(Intention.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
}