Activity加載模式的不同(eg:通知欄中提示信息)
Task:(類似棧)保存開啓的Activity
1、開啓本身(關閉的次數爲開啓的次數)
默認模式(standard)
android:launchMode="standard">
2、singleTop 棧頂單實例模式(關閉次數只有一次)
android:launchMode="singleTop">
1’目標Activity不存在時,創建一個新的Activity,加載到當前Task
2’目標Activity已經存在,並且處於棧頂,開啓時就不會創建新的Activity對象
3’若目標Activity已經存在,但不在棧頂(開啓另一個Activity),則會創建新的Activity對象
3、singleTask(棧中單實例)
android:launchMode="singleTask"
1’目標Activity不存在時,創建一個新的Activity,加載到當前Task
2’ 目標Activity已經存在,並且處於棧頂,開啓時就不會創建新的Activity對象
3’ 若目標Activity已經存在,但不在棧頂(開啓另一個Activity),會把目標Activity之上的所有Activity都清除,剩下本身,只退出一次
4、singleInstance (全局單實例)
android:launchMode="singleInstance"
1’目標Activity不存在時,創建一個新的Activity,存放在新的Task下
獲得Task位置getTaskIdea();
2’ 目標Activity已經存在,並且處於棧頂,開啓時就不會創建新的Activity對象,把目標Activity所在的Task移動到前臺
Intent標誌位flags
1、 Intent.FLAG_ACTIVITY_SINGLE_TOP(singleTop)
2、 Intent.FLAG_ACTIVITY_CLEAR_TOP (singleTask)
目標Activity存在時,但是處於棧中,關閉時將本身關閉(移除),再重新創建一個新的Activity
A---àB(設置意圖標誌位)---àA
3、 Intent.FLAG_ACTIVITY_NEW_TASK
在服務廣播接受者中要跳轉到某個Activity界面時,必須設置意圖標誌位Intent.FLAG_ACTIVITY_NEW_TASK