私には、一緒に生きるか死ぬかしなければならない一対の活動があります。基本的に、AlphaActivity は何らかの作業を行ってから、startActivityForResult()
BetaActivity のインテント ( ) をディスパッチします。BetaActivity が完了したら、GammaActivity のインテント ( startActivity()
) をディスパッチしてから、それ自体を呼び出しfinish()
ます。終了したら、AlphaActivity のonActivityResult()
メソッドが呼び出されることを望んでいましたが、それは決して起こらないようです。私の設計では、AlphaActivity の 内onActivityResult()
で を呼び出しますfinish()
。私の計画では、GammaActivity に達すると、ユーザーは AlphaActivity にも BetaActivity にも戻ることができなくなります。しかし現在、戻るボタンはユーザーを AlphaActivity に連れて行きます。
なぜうまくいかないのかについてはいくつかの考えがありますが、実際に何がうまくいくのかに興味があるので、ここでそれらについて議論することは無意味です.
編集:
コードはすべて非常に標準的なものです。
アルファ内部から
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();
}
}
}
ベータ版の内部から:
if (success) {
startGammaActivity();
finish();
}