terminer l'activité en onActivityResult ne fonctionne pas
J'ai une paire de activités de qui doit vivre ou mourir ensemble. Fondamentalement AlphaActivity fait un peu de travail et envoie une intention (startActivityForResult()
) pour BetaActivity. Lorsque BetaActivity est fait, je veux qu'il envoi d'une intention (startActivity()
) pour GammaActivity et ensuite appeler finish()
sur lui-même. À la fin, j'espérais AlphaActivity de onActivityResult()
méthode à appeler, mais qui semble ne jamais arriver. Ma conception est telle qu'à l'intérieur de AlphaActivity de onActivityResult()
, j'appelle finish()
. Mon plan est telle qu'une fois GammaActivity est atteint, l'utilisateur ne peut jamais revenir soit à AlphaActivity ou BetaActivity. Mais, actuellement, le bouton retour ne prendre l'utilisateur pour la AlphaActivity.
J'ai quelques idées de pourquoi il ne fonctionne pas, mais en discuter ici est inutile depuis que je m'intéresse à ce qui pourrait réellement fonctionner.
EDIT:
Le code est tout à fait standard trucs:
De l'intérieur Alpha
private void startBetaActivity() {
Intent intent = new Intent(this, BetaActivity.class);
startActivityForResult(intent, Constant.EXIT_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == Constant.EXIT_CODE) {
this.finish();
}
}
}
De l'intérieur de la Bêta:
if (success) {
startGammaActivity();
finish();
}
Avez-vous besoin de faire quelque chose avec un résultat de
BetaActivity
? Pourquoi ne peut - AlphaActivity
juste finish()
quand il commence BetaActivity
?OriginalL'auteur learner | 2013-04-24
Vous devez vous connecter pour publier un commentaire.
Je pense que vous avez juste besoin d':
OriginalL'auteur StoneBird
Dans mon point de vue, vous devez suivre cette,
Vous ne devriez pas commencer GammaActivity sur BetaActivity parce que le AlphaActivity onActivityResult ne fonctionnera pas correctement.
OriginalL'auteur JogahCR
Vous n'avez pas appelé setResult()
Ou si vous n'avez jamais besoin de revenir à partir de
BetaActivity
àAlphaActivity
alors dans les deux activités manifeste de mettreandroid:noHistory=true
Merci pour l'entrée, en particulier le bit sur
android:noHistory=true
. J'ai accepté l'autre parce qu'elle ressemble à sa première. +1Vous avez fait la bonne chose, j'ai voté lui aussi. En passant, si jamais vous setResult dans onBackpress ensuite, vous avez à setResult avant l'appel à super()
Merci. Je ne le savais pas.
OriginalL'auteur Hoan Nguyen