a) Standard:標準模式,默認的的模式,遵循后進棧的先出棧的原則
b) SingleTop:如果發現激活的activity是自己,那么不再激活新的activity,而是復用舊的activity 例如:瀏覽器的書簽是這個模式
C)SingleTask,如果發現激活的activity在任務棧里有,那么它將清空上面的activity,保證內存中只有一個activity在。例如:瀏覽器是這樣的
D)SingleInstance:系統為之分配一個新的task,且里面只能有其一個Activity
應用:呼叫界面,緊急呼叫界面
b,c,d三種模式都會調用onNewIntent 只要是復用,都會調用
b) SingleTop:如果發現激活的activity是自己,那么不再激活新的activity,而是復用舊的activity 例如:瀏覽器的書簽是這個模式
C)SingleTask,如果發現激活的activity在任務棧里有,那么它將清空上面的activity,保證內存中只有一個activity在。例如:瀏覽器是這樣的
D)SingleInstance:系統為之分配一個新的task,且里面只能有其一個Activity
應用:呼叫界面,緊急呼叫界面
b,c,d三種模式都會調用onNewIntent 只要是復用,都會調用
2016-10-05
在創建設置為singleTask模式的Activity的實例時,如果當前task的taskAffinity與該Activity的taskAffinity一致,則直接在當前task中創建;如果不一致則在新的任務中創建該Activity的實例。
2016-08-24
已采納回答 / 偉宅89
standard?不說了 singletop?這個我曾經用來避免多次創建,比如點擊一個按鈕啟動一個activity,如果快速點擊多次會導致反復啟動,一種辦法是在點擊事件里過濾,另一個辦法是設置目標activity是singletop singleTask?是不是就好比聯系人activity singleInstance?比如第一次啟動時一個activity讓用戶填資料,填完后轉到主activity,此時按后退,不再退回前一個activity
2016-06-15