0

これは、マニフェストにあるアクティビティ タグです。

<activity
    android:name=".Activity_B"
    android:label="@string/app_name"
    android:launchMode="singleTop"/>

私が達成したいことは次のとおりです。

Activity_A ---> Activity_B ---> Activity_C ---> Activity_B

Activity_B から Activity_C に移動するとき、Activity_B を終了したくありません。

しかし、Activity_C のボタンをクリックすると、Activity_B を起動する必要があります。Activity_B は再作成する必要があり (Activity_C の何らかのアクションのためにデータが変更されます)、バックスタックにある Activity_B の以前のインスタンスを終了する必要があります。

android:launchMode="singleTask"これはほぼ必要に応じて機能しましたが、Activity_B は再作成されていません。

android:launchMode="singleTop"Activity_B を再作成しますが、以前のインスタンスをバックスタックから削除しません

android:launchMode="singleInstance"これは同じように動作していますsingleTask

4

1 に答える 1

1

コメントを回答に変換する

あなたが説明するワークフローは、 を使用するのに最適なものですstartActivityForResult()。それを使用してActivity-BからActivity-Cを呼び出し、データが変更されたときに結果を設定しRESULT_OK、ユーザーが戻った場合はActivity-Bを変更/更新できます。

それが意図された方法です。

于 2013-02-20T12:40:29.790 に答える