質問

私はAndroid開発者ガイドとインターネットの一部の記事を読み、まだsingleTask launchmodeについて混乱しています。例を取ります:

ユーザーApp1を起動し、Android新しいタスクを起動します。 App1がフォロー順にアクティビティを作成すると仮定する:

ActivityA -> ActivityB -> ActivityC
.

Task1がどのように見えるかです。

ユーザーのボタンをクリックしてApp2を起動することを選択したので、Task1はバックグラウンドで、Androidを起動する新しいタスクを起動します.ask2、ユーザーは何かを行います:

ActivityD -> ActivityE
.

ActivityEを参照して、ActivityBを起動しようとし、ActivityBにはLaunchMode singleTaskがあります。

私が理解することは、Task1が再びフロントエンドにやってくることであり、Task2はバックグラウンドに行きます。そしてTask1は今こそこんなところです:

ActivityA -> ActivityB
.

これは:

  1. ActivityCはTask1から削除され、ActivityBはトップアクティビティになります。

  2. ユーザーが「戻る」ボタンをクリックすると、Task2 ActivityAに戻るのではなく、Task1のActivityEに入ります。

    私は正しい?

    ありがとう

役に立ちましたか?

解決

ActivityCはTask1から削除され、ActivityBはトップアクティビティになります。

YESあなたは正しいです...

ActivityCは、ActivityCのOnDestroyメソッドから削除されます。したがって、ユーザーがタスク1を再起動すると、ActivityBはActivityCではなく表示されます。

2つのタスク(プロジェクト)を作成し、同じ@ sendspace をアップロードしました。それを試してみてください...

Androids Documentation それは

"" Singletask "の活動はそのタスクの一部になることを可能にします。それは常にその課題の根本にありますが、他の活動(必然的に「標準」および「シングルトロップ」活動)をその中に起動することができますタスク。 "

これは、ホームボタンをクリックすると、単一のタスクアクティビティ上のすべてのアクティビティ(CaseがActivityBの場合)がスタックから削除されます。

サンプルアプリでは、プロジェクト「Androidtest」を実行してログ内のホームボタンをクリックした場合は、2番目のアクティビティが一時停止され、もう一度起動したときに表示されます。最近のアプリの「第2の活動は破壊されます。

シングルインスタンスアクティビティ(ActivityB)を上回っているSenarioでは、バックスタックから削除されず、別のアプリケーションはこのアクティビティ(ActivityB)を要求していない可能性があり、意図をドロップできます。しかし、これは、ユーザーがホームボタンを押す必要があるが、バックスタックの現在のタスク\アプリを別のタスク\アプリに移動することができるので、起こっている可能性が高くなりました。

したがって警告

他のモード - シングレートとシングルインスタンス - ほとんどのアプリケーションには適していません。強い>

あなたの疑問を解決することを願っています。

他のヒント

あなたは右に聞こえます。

テストしないのはなぜそれをテストしません。

説明の説明モードを説明できるこのアプリもあります:

https://play.google.com/Store / Apps / Details?ID= com.novoda.demos.activityLaunchMode

画像の入力ここにある

ソースは https://github.com/gnorsilva/activities-launchmode-demo

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top