正確に何のtaskAffinity
ために使用される属性ですか?私が通過したドキュメントが、あまり理解できませんでした。
誰でも簡単にタスク親和性を説明できますか?
正確に何のtaskAffinity
ために使用される属性ですか?私が通過したドキュメントが、あまり理解できませんでした。
誰でも簡単にタスク親和性を説明できますか?
回答:
Androidタスクアフィニティの用途は何ですか?
Androidアプリケーションには、カードのデッキのようなスタックを形成するアクティビティがあります。Androidアプリケーションを開始し、5つのアクティビティA、B、C、D、Eを開始するとします。彼らはスタックを形成します
E - chat view
D - weather screen
C - map view
B - weather screen
A - login screen
Eは開始された最後のアクティビティで、表示されています。Eを閉じるとDが表示されます。Dを閉じるとCが表示されます。等
アクティビティB
とD
は同じアクティビティであることに注意してください。ユーザーがにいくつかの変更を加えD weather screen
、その後アクティビティを閉じ、次にC Map view
?
次に、ユーザーは天気画面に戻り、levelで行われた変更がlevel D weather screen
に保存されなかったため、ユーザーは不満を感じますB weather screen
。これは同じアクティビティですが、そのアクティビティの異なる状態です。
ユーザーには5層のアクティビティスタックがあり、そのうちの2つは同じアクティビティでした。スタックから5つすべてをポップすると、同じアクティビティの2つの異なるバージョンを操作する現象が発生し、非常に混乱する可能性があります。
ユーザーは通常、厳密なアクティビティのスタックについて考えません。彼らは「天気予報ビューで変更を加えます」と考えてから、マップビューに戻りたいと考えています。ログイン画面に戻りたいので、もう一度バックアップします。なぜB weather app
表示され、なぜレベルから設定を保存しなかったのD
ですか?
アクティビティーB
とD
状態がリンクされていれば、プログラマーは多少の混乱を軽減できるかもしれません。そのように変化すると、一方が他方に変化します。ユーザーが新しい天気画面を開くたびに、天気画面の1つのインスタンスが密かに開かれます。
これらの状況では、アクティビティのtaskAffinityを変更することが望ましい場合があります。ユーザーはレベルDを変更します。次にレベルBに戻ります。Dに加えられたBの変更を確認します。
プログラムは、バックアップできるスタックを保持します。これは便利です。ユーザーが同じアクティビティのXインスタンスをランダムな場所で開いた場合、それらはすべて1つです。
詳細な説明のあるスライドショー:http : //www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack
singleInstance
代わりにを使用する場合はどうtaskAffinity
ですか?
taskAffinity
すべての:-(説明が曖昧でアメージングを論文の答えは非常に多くのupvotesを取得していること。。
taskAffinity
。これは、アクティビティが実行することを好むタスクの名前を指定するために使用されます。Intent
にフラグが含まれている場合FLAG_ACTIVITY_NEW_TASK
、アクティビティはこの特定のタスクに入れられます(によって定義taskAffinity
)。
Although it's the same activity, it's a different STATE of that activity.
「それはその活動の別の例です」と私は言うでしょう。
アフィニティは、アクティビティが所属することを好むタスクを示します。
アフィニティは、次の2つの状況で機能します。
アクティビティを起動するインテントにFLAG_ACTIVITY_NEW_TASKフラグが含まれている場合。
アクティビティのallowTaskReparenting属性が「true」に設定されている場合。
http://developer.android.com/guide/components/tasks-and-back-stack.htmlを参照してください
この詳細なプレゼンテーションですべてのケース(場合によってはエッジケース)を見つけることができます
Androidタスクとバックスタックの操作を参照してください