Activity 生命週期和棧(Task)的關係及Intent 常用的Flags
一、Activity的生命週期
有3個Activity:A,B
第一次建立A(正常):onCreate()>>onStart()>>onResume()
結束A:onPause()>>onStop()>>onDestory()
有覆蓋半透明B:onPause() 恢復A:onResume();
有覆蓋A不可見:onPause()>>onStop() 恢復A:onRestart()>>onStart()>>onResume()
結束Activity有兩種方式:
1、finish()
2、系統自動回收:在記憶體不足時優先順序更高的Activity要執行,則系統會回收之前的一個Activity,使用者重新選擇被回收的Activity時,又重新執行一次onCreate()方法
二、
1.Activity和棧的關係
2.Activity的啟動模式:(黃色部分)
<activity android:name=".MainActivity" android:launchMode="standard" />
Standard:每次啟用Activity時都會建立Activity,並放入任務棧中。
SingleTop:如果Activity例項正好在棧頂, 就重用這個Activity,否者就會建立新的例項並放入棧頂(即使棧中已經存在該Activity例項,只要不在棧頂,都會建立例項)。
SingleTask:如果在棧中已經有該Activity的例項,就重用該例項(會呼叫例項的onNewIntent())。重用時,會讓該例項回到棧頂,因此在它上面的例項將會被移除棧。如果棧中不存在該例項,將會建立新的例項放入棧中。
SingleInstance:在一個新棧中建立該Activity例項,並讓多個應用共享改棧中的該Activity例項。一旦改模式的Activity的例項存在於某個棧中,任何應用再啟用改Activity時都會重用該棧中的例項,其效果相當於多個應用程式共享一個應用,不管誰啟用該Activity都會進入同一個應用中。
三、經常用到的Intent.Flags
FLAG_ACTIVITY_NEW_TASK:預設,會重新建立新的Activity
FLAG_ACTIVITY_SINGLE_TOP:相當於啟動模式的singleTop,比如:棧中有:ABCD四個Activity。如果在D中啟動D,棧的情況還是ABCD。
FLAG_ACTIVITY_CLEAR_TOP:相當於啟動模式的singleTask,比如:棧中有:ABCD四個Activity。如果在D中啟動B,則棧成AB
FLAG_ACTIVITY_NO_HISTORY:表示不留在棧裡
FLAG_ACTIVITY_REORDER_TO_FRONT:比如:棧中有:ABCD四個Activity。如果在D中啟動B,則棧成ACDB
相關文章
- View生命週期與Activity生命週期的關係View
- View和Activity的生命週期View
- 品牌生命週期和產品生命週期之間的關係
- 關於activity的生命週期1
- activity生命週期的onPause和onStop
- Activity簡介及生命週期
- Activity的生命週期和啟動模式模式
- Activity生命週期
- [Android]Activity的生命週期Android
- activity的生命週期(總結)
- Activity生命週期onDestroy
- Activity的生命週期和啟動模式詳解模式
- Android Fragment的生命週期和返回棧AndroidFragment
- Intent.FLAG_ACTIVITY_NEW_TASKIntent
- Android Activity生命週期Android
- Activity生命週期總結
- Flutter路由棧和生命週期解析Flutter路由
- Activity 知識梳理(1) Activity生命週期
- 深入學習Activity生命週期
- 為什麼 bindService 能和 Activity 的生命週期聯動?
- Android Activity的生命週期和啟動模式詳解Android模式
- Android Activity生命週期的一點感悟Android
- 多Activity切換的生命週期問題
- 初識Android之Activity的生命週期Android
- Android四大元件——Activity——Activity的生命週期Android元件
- Maven生命週期及常用命令Maven
- Activity生命週期與啟動模式模式
- Android 元件系列-----Activity生命週期Android元件
- Activity生命週期深入理解2
- Android Activity生命週期詳解Android
- android Activity A和B互相跳轉 生命週期的變化Android
- Activity A 跳轉到 Activity B,生命週期的執行過程
- Android的Task和Activity相關Android
- 擼擼Android的羊毛(二)----Activity生命週期Android
- Android 之 Activity 生命週期的淺析(二)Android
- 文章之間的基本總結:Activity生命週期
- 關於Fragment的生命週期Fragment
- Android | Activity和Fragment最全生命週期+發現大牛AndroidFragment