2つのアクティビティAとBがあると仮定します。AからBに移動します。Aはバックグラウンドに移動します。
Bはバックスタックに置かれ、Bがフォーカスを取ります。戻るボタンをクリックすると、アクティビティBがバックスタックから飛び出します。アクティビティAが再開されます。
注:複数のタスクを一度にバックグラウンドで保持できます。ただし、ユーザーが同時に多くのバックグラウンドタスクを実行している場合、システムはメモリを回復するためにバックグラウンドアクティビティの破棄を開始し、アクティビティの状態が失われる可能性があります。アクティビティの状態については、次のセクションを参照してください。
http://developer.android.com/training/basics/activity-lifecycle/starting.html。一度破壊されたアクティビティは再作成する必要があります。画面の向きが変わると、アクティビティが破棄されて再作成されます。
http://developer.android.com/training/basics/activity-lifecycle/starting.html。
http://developer.android.com/guide/components/tasks-and-back-stack.html。バックスタックがどのように機能するかを確認する必要があります。
あなたの場合、仕上げはあなたのために働くはずです(戻るボタンを押すことによって)。
注:システムは、onCreate()メソッド内からfinish()を呼び出す場合、1つを除くすべての状況でonPause()およびonStop()を既に呼び出した後にonDestroy()を呼び出します。
3番目のアクティビティCがあり、アクティビティAに移動するとします。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
}
return super.onKeyDown(keyCode, event);
}
public void onBackPressed() {
Intent myIntent = new Intent(ActivityC.this, MainActivity.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);// clear back stack
startActivity(myIntent);
finish();
return;
}