2 つの「モード」を持つアプリケーションを作成しています。1 つの表示モードと 1 つの編集モード。アプリケーションは、2 つのメイン/ランチャー アクティビティ (たとえば、AとD ) を公開します。これらのアクティビティには、それぞれ独自のアクティビティ チェーン ( B、C、E、F ) があります。2 つのエントリ ポイント アクティビティAとDは、ホーム画面に別々のラベルが付いた 2 つのアイコンを表示し、2 つのチェーンが交差することはありません。つまり、アクティビティAを使用してビュー モードでアプリケーションを起動すると、往復できる唯一のルートになります。はA、B、Cまた、アクティビティDを使用してアプリケーションを編集モードで開始した場合、使用可能なアクティビティ チェーンはD、E、Fのみです。
さて、私の問題は、たとえばビューモード(アクティビティチェーンA、B、C)でアプリケーションを起動し、そのチェーンの任意のアクティビティからホームボタンを押すと(もちろん)ホーム画面に戻ることです。編集モードでアプリケーションを再起動します (アクティビティ チェーンD、E、F ) ホーム ボタンを押したときに行っていたアクティビティ (つまり、間違ったチェーンのアクティビティ) に移動します - 予期される編集モードのエントリ ポイントではありません; アクティビティD .
これを解決するにはどうすればよいですか?
android:noHistory
関連するアクティビティについて、android:clearTaskOnLaunch
およびその他の属性のさまざまな組み合わせを試しAndroidManifest.xml
ました。しかし、それらはチェーン全体ではなく、アクティビティそのものに影響を与えるようです。
ホームボタンが押されたときにアクティビティのチェーン全体(A、B、CまたはD、E、F)を履歴スタックから削除したいのですが、チェーン内にいる間はスタックをそのまま保持します(たとえば、アクティビティBから [戻る] ボタンを押して、アクティビティAに移動できるようにします)。