2011-03-28 107 views
6

閱讀Android documentation,並且這裏的一些答案使得clearTaskOnLaunch應該工作的模糊不清。特別是clearTaskOnLaunch HowTo?

1)如何識別根活動?它是簡單的與DEFAULT,LAUNCHER或MAIN意向過濾器嗎?

2)從文檔中的「主屏幕」啓動意味着OS主屏幕或應用程序列表,更正?即不在應用程序中。

3)clearTaskOnLaunch是否清除活動堆棧,無論何時該活動從主屏幕啓動,或僅當該活動的進程從主屏幕啓動時?因爲文檔指出前者,但這裏的帖子指出後者。我想這取決於「發射」的定義是什麼。 4)是否「清除」活動堆棧意味着刪除它,或讓活動循環遍歷onCreate()和finish()?

我已經操縱clearTaskOnLaunch以各種可以想象的方式完全沒有效果。我已經將它放在清單中的根活動中,然後將它放在每一個活動中,以確保它們完整無缺,重新啓動我的應用程序,等等。我的活動堆棧根本沒有被清除。

任何人都可以提供關於如何實施clearTaskOnLaunch的完整概述?

回答

5

下面是從Android工程師,組完全緩解:http://groups.google.com/group/android-developers/browse_thread/thread/da024bcaf4e1960f

閱讀Android文檔和一些問題的答案在這裏(和 的StackOverflow)已經離開了曖昧clearTaskOnLaunch如何 應該行爲,具體如下:

1)「清除」活動堆棧是否意味着刪除它,或者通過onCreate()和finish()完成活動循環?

堆棧中正在清除的所有活動都將通過 生命週期,就像它們調用finish()一樣。一般情況下,根活動將保持不變。

2)如何識別根活動?它是 它只是與 DEFAULT,LAUNCHER或MAIN意向過濾器?

這基本上是堆棧中的第一個活動。 Intent是用於啓動堆棧的 Intent。

3)的文檔中,從「主屏幕」啓動意味着OS家 屏幕或應用程序列表中,是否正確?即從不在 應用程序中。

它並不真正的問題 - 它只是誰設置 Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED。當從圖標啓動應用程序時,標準啓動程序設置爲 。你可以自己設置,如果你想要 。

4)是否clearTaskOnLaunch清除活動堆棧每當 活動是從主屏幕啓動,或者只是當 活動的過程是從主屏幕開始了嗎?由於文檔 指示前者,但這裏的帖子指示後者。我猜這 取決於「發射」的定義是什麼?

每當它從主屏幕啓動時。進程 被終止並重新啓動的事實應該對用戶不可見。

我已經在 可以想像的任何方式操縱clearTaskOnLaunch絕對沒有影響。我已經將它放在 清單中的根目錄中,然後將它放置在每個活動中以確保其完整性,在完全終止進程後重新啓動 我的應用程序等。我的活動 堆棧根本沒有被清除。

設置使用這個作爲一個例子 - 如果你去設置,向下挖掘 了一下,按home,然後再次啓動設置,你最終會在 家庭活動,而不是無論你最後去了。它只設置 其應用主要活動的標誌。