8

だから私はタスク、バックスタック、概要画面に関するドキュメントを読んでいますが、私を非常に混乱させることが1つあります。ここを読んだ後launchMode: http://developer.android.com/guide/components/tasks-and-back-stack.htmlそしてdocumentLaunchModeここについて: http://developer.android.com/guide/components/recents.html Iそれらがどのように違うのかわかりません!

どちらも、現在のタスク (アクティビティを起動するタスク) に関連するタスクで新しいアクティビティの起動を制御する方法を提供するために描かれています。では、これら 2 つのモードはどのように異なるのでしょうか。-documentの追加は何を意味しますか?

マニフェスト ファイルでの使用を直接参照するドキュメントは次とおり
です 。 com/guide/topics/manifest/activity-element.html#dlmode

4

4 に答える 4

1

DocumentLaunchMode:

  • 最近のタスク画面との関連性が高まる
  • 同じアクティビティの複数のドキュメントを最近/概要画面に表示できるようにします
  • 可能な値:

    1. "intoExisting" - アクティビティは、ドキュメントの既存のタスク (ドキュメントを作成するタスク) を再利用します。この値を使用することは、FLAG_ACTIVITY_MULTIPLE_TASK フラグを設定せずに FLAG_ACTIVITY_NEW_DOCUMENT フラグを設定することと同じです。
    2. "always" - ドキュメントが既に開かれている場合でも、アクティビティはドキュメントの新しいタスクを作成します。これは、FLAG_ACTIVITY_NEW_DOCUMENT フラグと FLAG_ACTIVITY_MULTIPLE_TASK フラグの両方を設定することと同じです。
    3. "none" - (デフォルト) - アクティビティは、アクティビティの新しいタスクを作成しません。これは、FLAG_ACTIVITY_NEW_TASK が設定されている場合にのみ、新しいタスクを作成します。概要画面では、アクティビティがデフォルトと同様に処理されます。アプリの単一のタスクが表示され、ユーザーが最後に呼び出したアクティビティから再開されます。
    4. "never" - インテントに FLAG_ACTIVITY_NEW_DOCUMENT が含まれていても、このアクティビティは新しいドキュメントに起動されません。これを設定すると、FLAG_ACTIVITY_NEW_DOCUMENT フラグと FLAG_ACTIVITY_MULTIPLE_TASK フラグのいずれかがアクティビティに設定されている場合、これらのフラグの動作がオーバーライドされ、概要画面にアプリの単一のタスクが表示され、ユーザーが最後に呼び出したアクティビティから再開されます。

起動モード:

  • バックスタックとの関連性が高い
  • アクティビティの開始方法 (タスクの作成と関連付け) を扱います。
  • 可能な値:

    1. "standard" - (デフォルト) - システムは常にターゲット タスクでアクティビティの新しいインスタンスを作成し、インテントをそこにルーティングします。
    2. "singleTop" - アクティビティのインスタンスがターゲット タスクの先頭に既に存在する場合、システムはアクティビティの新しいインスタンスを作成するのではなく、その onNewIntent() メソッドの呼び出しを通じてそのインスタンスにインテントをルーティングします。
    3. "singleTask" - システムは新しいタスクのルートにアクティビティを作成し、インテントをそこにルーティングします。ただし、アクティビティのインスタンスが既に存在する場合、システムは、新しいインスタンスを作成するのではなく、その onNewIntent() メソッドを呼び出すことによって、インテントを既存のインスタンスにルーティングします。
    4. "singleInstance" - "singleTask" と同じですが、システムはインスタンスを保持しているタスクに他のアクティビティを起動しません。アクティビティは、常にそのタスクの唯一のメンバーです。

論理関係:「none」および「never」(documentLaunchMode) 以外の値の場合、アクティビティは launchMode="standard" で定義する必要があります。この属性が指定されていない場合、documentLaunchMode="none" が使用されます。

于 2016-08-15T05:15:47.110 に答える
0

DocumentLaunchMode は、最近のタスク リスト (ガイド バーの 3 番目のボタン) でのアプリ タスクの表示を制御します。Chrome で Web サイトを開くのと同じように、このサイトに関する多くのタブを開くことができます。

于 2015-08-22T09:10:57.613 に答える