0

AとBの2つのアクティビティがあります。通常のシナリオは次のとおりです。Aが実行されてからBにインテントが送信されます。Aが一時停止され、Bが表示されます。ユーザーがBから戻るボタンを押すと、Bは破棄され、ユーザーはAに戻ります。

ただし、Bが自分自身を再作成する必要がある場合があります。これを行うには、Bに電話finish()してからstartActivity()、Bに電話します。これで問題ありません。しかし、戻るボタンをクリックすると、再びBが表示されるので、Aに戻るにはもう一度戻るボタンをクリックする必要があります。

Bを再起動しても、戻るボタンを1回だけ押すとAに戻るにはどうすればよいですか?

4

2 に答える 2

3

以下は、次のインテントを起動しながら現在のアクティビティを破棄します。

Intent launchNext = new Intent(getApplicationContext(), NextActivity.class);
launchNext.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(launchNext);

戻るボタンをオーバーライドするには、次を使用します。

@Override
public void onBackPressed() {
    super.onBackPressed();
    this.finish(); // or do something else
}
于 2012-10-25T17:47:41.313 に答える
1

これは、インテント フラグを詳しく調べることで解決できます。http://developer.android.com/reference/android/content/Intent.htmlをチェックすると、どのようなライフサイクルを目指しているかについての詳細情報が得られます。

また、戻るボタンの機能をオーバーライドできることも忘れないでください。これは、ライフサイクルをより厳密に管理したい場合に役立ちます。たとえば、B から戻る場合は必ず A に戻るようにすることもできます。A に戻る場合はアプリを閉じます。

于 2012-10-25T17:46:57.943 に答える