我的Android應用程序包含一套迷你應用程序。簡而言之,主屏幕包含多個圖標,每個圖標用於迷你應用程序。點擊圖標後,便會啓動小應用程序。 總共有4個迷你應用程序。所以你可以想象我的主屏幕就像主屏幕啓動器一樣。雖然這些小應用程序可以獨立運行,但我希望用戶通過身份驗證。因此在MainActivity之前有一個LoginActivity權限。想知道taskAffinity&launchModes的正確使用嗎?
LoginActivity -> MainActivity ---> AppOneActivity
---> AppTwoActivity
---> AppThreeActivity
---> AppFourActivity (aka PresenceListActivity)
我仍然不很確定的任務的好處(排列組活動的),所以我想在我的設計決定從Android的專家意見: -
(1)我計劃將屬性finishOnTaskLaunch設置爲true對於LoginActivity。據我瞭解,一旦登錄通過身份驗證,我將導航到MainActivity,我想LoginActivity消失。這是否比在活動上致電#finish好? MainActivity會自動成爲任務的根,不需要任何額外的配置/代碼?
(2)其中一個迷你應用程序是一個IM客戶端。 PresenceListActivity將承載許多ChatActivity實例(與buddylist中的活動聯繫人進行一對一聊天會話)。我打算使用ChatActivity的默認啓動模式,因爲每個聊天應該由新實例處理。聽起來正確嗎?
(3)粘導航欄將在AppOneActivity,AppTwoActivity等右上角存在。我打算設置clearTaskOnLaunch屬性爲true,所有的人。據我瞭解,每當我計劃推出任何迷你應用程序時,我都應該清除堆棧。他們的launchModes將是singleTask。我在正確的道路上嗎?
(4)最後我真的不知道如何讀取adb shell dumpsys活動的輸出。例如
Task{10 com.me.rnd.exit}
clearOnBackground=false numActivities=1
affinity=com.me.rnd.exit
lastActiveTime=5513102 (inactive for 5s)
History #1: .....
Task{2 com.android.launcher}
clearOnBackground=true numActivities=1 rootWasReset=true
affinity=com.android.launcher
lastActiveTime=5512949 (inactive for 6s)
Running #0:
有時任務的下面,你將看到歷史,而在其他運行,這分別意味着什麼?更奇怪的是,有時候我有兩個歷史下的任務。
在MainActivity需要獲取並加載大量的數據,所以我不認爲你的建議將工作。 – 2009-09-29 04:18:00
怎麼樣有一個處理顯示登錄活動或主要活動的活動: LaunchActivity - > LoginActivity和LuanchActivity - > MainActivity 首先,它啓動LoginActivity。登錄成功後,登錄活動結束並消失,啓動器顯示主要活動 – user175750 2009-09-30 19:19:23