3

4 つまたは 5 つのアクティビティを含むアプリケーションがあります。A、B、C、D、E としましょう。

すべてのアクティビティから他のすべてのアクティビティにジャンプすることは多かれ少なかれ可能です。

ユーザーが A -> B -> E -> D に移動するとします。

今、彼は B を (再び) 開きたいと考えています。ここで、アクティビティ スタックのどこかにアクティブな B が既に 1 つあることをアプリケーションに認識させ、それを再アクティブ化します (または、少なくとも古い B を終了して新しい B を作成します)。

ユーザーが戻るボタンを頻繁に使用する可能性があるため、新しいアクティビティを作成するときにすべてのアクティビティを終了したくありません。

考えられる解決策は、自分でアクティビティ スタックを作成し、それをバンドルで処理するか、いくつかの静的構造を使用することです。

しかし、もっとシンプルで優れた方法が必要ですよね??

ご協力いただきありがとうございます!

4

1 に答える 1

3

マニフェストの起動モード タグでsingleInstance値または値を使用できます。singleTask

android:launchMode=["multiple" | "singleTop" |"singleTask" | "singleInstance"]

Android開発者の基礎によると

singleTaskおよびsingleInstanceモードも、次の 1 つの点でのみ異なります。

singleTaskアクティビティでは、他のアクティビティをそのタスクの一部にすることができます。これは常にそのタスクのルートにありますが、他のアクティビティ (必要に応じstandardておよびsingleTopアクティビティ) をそのタスクに起動できます。

singleInstance一方、アクティビティでは、他のアクティビティをそのタスクの一部にすることはできません。タスク内の唯一のアクティビティです。別のアクティビティを開始すると、そのアクティビティは別のタスクに割り当てられます —FLAG_ACTIVITY_NEW_TASKインテント内にあるかのように。

于 2012-04-27T14:07:25.943 に答える