ドキュメントが言ったことを正確に実行するため、このすべてのフラグがどのように機能するかを本当に理解していませんが、問題は解決しませんでした。私のアクティビティは次のように起動しています: (最初) アクティビティ A -> アクティビティ B -> (2番目) アクティビティ A. ボタンを押すと、アクティビティ B -> アクティビティ A -> アプリケーションの終了に戻ります。ここで、アクティビティ B から指定された 2 番目のアクティビティ A が必要です。戻ると、アクティビティ B と最初のアクティビティ A がスキップされ、すぐにアプリケーションが終了します。コードは次のとおりです。
A から B へ:
TabActivityGroupAbs parentActivity = (TabActivityGroupAbs) ((Activity) ctx).getParent();
detailIntent = new Intent(parentActivity, B.class);
parentActivity.startChildActivity("BFromA", detailIntent);
BからAへ:
TabActivityGroupAbs parentActivity = (TabActivityGroupAbs) ((Activity) ctx).getParent();
detailIntent = new Intent(parentActivity, A.class);
detailIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
detailIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
parentActivity.startChildActivity("AFromB", detailIntent);
B から A に flags を追加しFLAG_ACTIVITY_CLEAR_TOP
ます。しかし、それは何もクリアしませんでした。押し戻しても、アクティビティ B に移動し、次に再び A に移動しました。私は何を間違えましたか?
そして、どのフラグもまったく機能していないようです。A から B に、次のように記述します。
detailIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
Bがアクティビティスタックに置かれるのを防ぐはずです。しかし、そうではありません。2 番目のアクティビティ A から、押し戻すと B に戻ります。
アプリケーションを終了し、2 番目のアクティビティ A から B に戻らないようにするにはどうすればよいでしょうか。
編集:言及するのを忘れていました。B から A へ、finish() を呼び出してアクティビティ B を終了した場合、2 番目のアクティビティ A から戻ると、最初のアクティビティ A に戻ります。本当に奇妙です。