Drapeau de l'Activité Clair détruit l'activité cible et que de la créer
Je suis de regarder un comportement d'Intention.FLAG_ACTIVITY_CLEAR_TOP.
Par exemple, j'ai trois activités
A,B et C
Maintenant Flow -> B -> C
Maintenant, quand je commence Un de C avec ce drapeau avec le code suivant.
Intent intent_to_a=new Intent(C.this,A.class);
intent_to_home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent_to_a);
Autant que je sache, l'Intention.FLAG_ACTIVITY_CLEAR_TOP devrait supprimer B et devrait reprendre du Une .Il a également fait la même chose mais d'une manière étrange.
Il supprime B , que supprime Une que crée A.
La méthode onDestroy de A est aussi appelé.
Quelqu'un peut me dire c'est bon ou pas?
Si je ne veux pas d'elle pour se détruire que dois-je faire?
regarder dans FLAG_ACTIVITY_REORDER_TO_FRONT, ce qui est plus proche de ce que vous voulez developer.android.com/reference/android/content/Intent.html
ouais,j'ai vu aussi,mais je veux aussi que B ait détruit,FLAG_ACTIVITY_REORDER_TO_FRONT seulement mettre Un en haut de ActivityStack sans enlever B.
peut-être que vous pourriez utiliser LocalBroadCastManager pour envoyer un séparer l'intention de B pour terminer elle-même et ensuite utiliser Reorder_to_front? Je pourrais donner le code source si c'est quelque chose que vous êtes intéressé à
tu veux dire que nous pourrions utiliser un BroadcastReceiver à tout juste d'en terminer B. Est-ce donc?
correct, mais il est en fait très facile à faire au lieu d'avoir le BroadcastReceiver comme une classe distincte, vous pouvez l'avoir dans l'activité et la dynamique de la déclarer
ouais,j'ai vu aussi,mais je veux aussi que B ait détruit,FLAG_ACTIVITY_REORDER_TO_FRONT seulement mettre Un en haut de ActivityStack sans enlever B.
peut-être que vous pourriez utiliser LocalBroadCastManager pour envoyer un séparer l'intention de B pour terminer elle-même et ensuite utiliser Reorder_to_front? Je pourrais donner le code source si c'est quelque chose que vous êtes intéressé à
tu veux dire que nous pourrions utiliser un BroadcastReceiver à tout juste d'en terminer B. Est-ce donc?
correct, mais il est en fait très facile à faire au lieu d'avoir le BroadcastReceiver comme une classe distincte, vous pouvez l'avoir dans l'activité et la dynamique de la déclarer
OriginalL'auteur kaushal trivedi | 2013-07-06
Vous devez vous connecter pour publier un commentaire.
Utilisation FLAG_ACTIVITY_REORDER_TO_FRONT et d'utiliser ensuite une intention de dire à B à la fin.
Activité B:
Activité C:
vous devez ajouter la bibliothèque de prise en charge v4 developer.android.com/tools/extras/support-library.html
OriginalL'auteur Ryan S
Soit,
1. Modifier la
launchMode
de l'Activité de l'Un à autre chose à partir de la norme (c'est à diresingleTask
ou quelque chose). Ensuite, votre drapeauFLAG_ACTIVITY_CLEAR_TOP
ne va pas redémarrer votre Activité A.ou,
2. Utilisation
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
que votre drapeau. Ensuite, il fonctionnera de la manière que vous désirez.Cette question a une bonne discussion sur le même sujet
Android documentation dit -
OriginalL'auteur Darpan