Cから戻ると元のBに戻るべきではありませんか?バックボタンであること
A>
B>
C<
B>
C>
C<
C<
B<
A
>次のアクティビティに行くと
、および<:だからスタックは次のようになりますか?
すべてのアクティビティに対してonBackPressedをオーバーライドすることができます。したがって、Cでは新しいBをロードし、Bは新しいAをロードし、AはmoveTaskToBack(true);
をロードしますが、これはソリューションのほうが少なく、作業。
onResumeを使用して、デフォルトでのようにBが表示されるようにしてください。関連する変数を新しいアクティビティの内容に設定します。あなたがCから来ているときにのみ必要ならば、Cがロードされたときにtrueに設定されたクラスブール値を持ち、onResumeまたはonRestartでチェックします。 trueの場合は、すべてをデフォルト/空白に設定し、ブール値をfalseに設定します。そうでない場合は、それをどのように読み込んでください(これは家に帰ってアプリに戻った場合です)。私は私の仕事の机にないんだけど、私はあなたがしたいと思う:
@Override
public void onResume() {
super.onResume();
if(fromC == true){
//Set all variables to load default dictionary
fromC = false;
}
}
}
これは新しいB.
またはその代わりのように、元のBの行為をしなければならない、あなたはそれを簡単に行うことができます、としたときに、このような新しいBロードする意図を呼び出す:一つだけB.あなたが戻ったときに、それは空白としてロード作ることは少し異なっており、クラスを必要とすることが作ってあげる
startActivity(getIntent());
finish();
を変数、または私が考えている他のトリッキーなトリックです。 .zip of small sample
もしあなたのコードをそのようなもの(ほとんどの場合、適切な変数を使って適切に動作させることができればそれが意味をなさない場合)を作り直すことができれば、 。
出典
2011-07-22 18:42:58
Rob
[here](http://developer.android.com/guide/topics/manifest/activity-element.html#lmode)で紹介されているさまざまなlaunchModesを調べましたか? singleTop、singleTask、またはsingleInstanceモードは、探している動作を提供します。 – theisenp
私はそれをもう一度。さまざまな旗を見て、彼らが助けることができるかどうかを見ます。あなたがCから戻ってきたとしても、それはあなたを元のbに連れてはいけませんか? – Rob
フラグは、Cから新しいBを起動しようとするときを除いて、私が望むものとほぼ同じです。元のBに戻ります。 – Jdban101