2015-11-09 31 views
1

什麼是某些應用程序示例或(singleInstance,singleTask,singleTop)用於必要目的的用例。即爲什麼會有人贊成一種發射模式而不是另一種發射模式?到目前爲止,我與他們的經歷都是嚴格的記錄,所以瞭解他們在哪裏使用會很有幫助。謝謝!Android中LaunchModes的真實世界用例是什麼?

回答

1

據我所知,它意味着你不能啓動一個活動的多個實例。

在我的例子中,我在我的主要啓動器活動中使用「singleInstance」,因爲它有碎片,並且它正在通過通知意圖啓動。 如果活動在用戶觸摸「家」後發送到後臺,我不希望它通過通知意圖從後臺啓動,因爲它會顯示上次看到的片段。如果我設置「singleInstance」,它將始終啓動新的活動實例,並顯示主要片段。

在我的情況下,我不能使用「singleTask」,因爲它從我的應用程序中保存了其他活動,但將主要活動放在頂部。我不需要在堆棧中的歷史。

「singleTop」僅在活動不在堆棧頂部時纔在活動上啓動新實例。如果它位於頂部,則從後臺啓動,這就是我的應用中不需要的。

希望我很清楚:)

+0

所以,singleTask,將是有用的說,谷歌搜索。如果我有5個應用可以啓動googleSearch活動,他們將啓動googleSearch的新實例(如果不存在),或者重新啓動googleSearch實例(如果實例已經存在於後臺堆棧中)?這是正確的說法嗎?你的意思是「5個不同的應用程序」,或者可能在一個應用程序中的5個活動的 – 3alto

+1

?我認爲它不適用於各種應用程序。 –

+0

對於模棱兩可感到抱歉。基本上,我的意思是,如果任何活動(無論任務)是否嘗試啓動一個應用程序singleTask,他們將1)啓動一個新實例(如果不存在),或2)他們將簡單地重新啓動實例活動(如果一個實例已經存在)? - 這是singleTask背後的主要前提? – 3alto