2011-10-12 78 views
1

我的應用程序中有多個活動。 爲活動的流動是Android:活動的啓動模式

A-> B-> C^...

A-> D->電子...

A-> F-「G ..

....

,每個人都有一個後退按鈕返回到之前的活動和家庭回去A.

我的問題是,當我推出各自的這些作爲singletask,我能感覺到明顯快SWITC當我點擊回家或回家時,在活動之間興奮。我沒有看到任何問題,如果我把它們作爲單數的問題。

但要是我能夠保持活動,在我的應用singletask我很verlooking任何問題。非常感謝您的時間和幫助

回答

7

是有從mainfest.xml改變活動的行爲模式,當你將督促Android主屏幕Home按鈕並獲得返回給應用程序之前的活動將是問題將完成應用程序,那麼最好是使用意圖,而不是使用單一任務模式,您可以使用意圖切割活動堆棧的標誌。並且通過在單個任務中啓動模式來更改系統設置,爲什麼不用你保持啓動模式,並將其交給系統處理活動..!

Intent intent = new Intent(getApplicationContext(),A.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 
      finish(); 
+0

有關應用程序的結束點時,家裏真的很不錯。我在閱讀後才注意到這一點。謝謝。 你能否請求解釋「你可以使用標誌意圖切割活動堆棧。」這將被使用的上下文 – png

+0

它就像當你想要去你的應用程序的菜單(即A)時,只需將標誌添加到你的意圖中,這將清除在A之後被調用的活動,並將直接給予你A和其他活動如果他們沒有完成就會被破壞......試試這個flag..i編輯答案.. –

+0

好了,這裏多了一個疑問:如果我們設置標誌位,其他actvities將從棧中被清除,否則他們將被destryed。你能解釋一下從堆棧中清楚的意思嗎?它們是否真的沒有被銷燬?下一次,當這個活動被啓動時被清除,它不會被啓動,而是回到堆棧?我對麼 ? – png

1

A 「標準」 或 「singleTop」 活動可以被實例化許多 次。它們可以屬於多個任務,並且給定的任務可以具有多個相同活動的實例。 與此相反,「singleTask」和「singleInstance」活動 侷限於一個實例。由於這些活動是在 根的任務的,這種限制意味着有從未超過一次設備上的任務的單個實例更 。

的clearTaskOnLaunch屬性如果這個屬性被設置爲在任務的根系活力 「真」,堆棧向下 每當用戶離開任務和 返回到它的根系活力清除。換句話說,它是 alwaysRetainTaskState的極性(如果你想保留stsck中的所有活動,你可以使用它)。用戶總是返回到初始狀態 的任務,即使在短暫缺席或甚至在您的情況下按下家後也是如此。

+0

感謝您的時間和解釋 – png