2010-03-31 5 views
0

J'ai le problème suivant:Comment gérer les commentaires des threads d'arrière-plan si l'utilisateur utilise le bouton Précédent?

J'ai une activité dans laquelle un utilisateur peut lancer une recherche Web montrant une nouvelle activité pour afficher une barre de progression jusqu'à ce que les résultats soient affichés. Maintenant, l'utilisateur peut soit attendre les résultats ou peut-être réfléchir sur les paramètres de recherche, appuyer sur le bouton retour et déclencher une nouvelle recherche. La recherche est en cours d'exécution dans une tâche asynchrone et, par conséquent, toujours en cours d'exécution si l'utilisateur répond en retour. Au moment où le thread se termine, il appelle certaines méthodes sur l'ancienne activité provoquant l'activité d'afficher un dialogue. Cela provoque le blocage du système car la boîte de dialogue tente de s'afficher avec une référence à une activité qui n'est plus présente à l'écran.

Comment puis-je obtenir une boîte de dialogue qui s'affiche uniquement si l'activité est toujours active?

Répondre

1

Appelez isFinishing() pour votre activité.

+0

Merci, cela semble fonctionner. Est-ce que toutes les activités sont laissées avec le bouton arrière finissant? – Janusz

+0

Malgré le nom impair, je crois qu'il indique simplement si l'activité est visible pour l'utilisateur ou non. –

+0

Non renvoie uniquement vrai si l'activité va être détruite. Si je laisse une activité en avant, ce qui signifie que je suis capable d'y revenir via le bouton de retour, l'activité est seulement en pause et ne se termine pas. – Janusz

Questions connexes