1

上記のAndroidドキュメントFLAG_ACTIVITY_NEW_TASK

このフラグを使用する場合、開始しようとしているアクティビティに対してタスクが既に実行されている場合、新しいアクティビティは開始されません。代わりに、現在のタスクが前回の状態で画面の前面に表示されます。

これを実装するデモを作成します。A と B の 2 つのアプリがあります。A にはアクティビティ A1 が含まれ、B にはアクティビティ B1、B2 が含まれます。

私は次の手順に従います:Home Screen(Application A icon) --> A1 (FLAG_ACTIVITY_NEW_TASK to start B1)--> B1 -->B2 --> Home Screen(Application B icon)--> 私の理解では、ランチャーからアプリケーション B アイコンをクリックして、アクティビティ B1 を起動しFLAG_ACTIVITY_NEW_TASKます。したがって、前に開始されたタスクを前面に表示する必要がありますが、残念ながら、実際には新しいアクティビティ B1 が開始され、B タスク スタックは次のようになります: (下)B1 B2 B1。

ランチャーでアプリケーション B のアイコンをクリックしたときに既存のタスクを前面に表示するにはどうすればよいですか

4

1 に答える 1

0

A と B は 2 つの異なるアプリですよね?つまり、両方が別個のプロセスとして実行され、別個のタスクとして動作します。

したがって、FLAG_ACTIVITY_NEW_TASK を A に設定すると、A 用の別のタスクが作成され、ルート アクティビティとして作成されるか、A の既存のインスタンスが前面に表示されます。

B がランチャーから開始されると、Android の通常のランチャーの動作に従って、別のタスクとして開始され、B は別のスタックを持ちます。

于 2013-01-23T18:01:33.530 に答える