一.四大狀态
running - paused - stopped - killed
備注:Running狀态和Paused狀态是可見的,Stopped狀态和Killed狀态時不可見的。
二.七大生命周期
onCreate - onRestart - onStart - onResume - onPause - onStop - onDestory
備注:
以頁面a跳到b為例
1.A頁面onStop()将在B頁面onResume後執行
2.當B頁面為透明、不完全遮擋、Dialog時,A方法不會執行onStop,B傳回後直接執行onResume不會執行onStart.
3.系統記憶體不足、使用者點選Home|Memu鍵、按下電源按鍵 、螢幕切換等情況下 onStop、onDestory可能不觸發
4.onDestory隻在調用finish 和 系統不足情況下才可能觸發。
參照:
生命周期 : https://blog.51cto.com/4397014/2162413
三.四大加載模式
standard、singTop、singTask、singleInstance
1.singTop 處于當棧頂時,不再開啟新的執行個體。常見于點選消息通知欄彈出清單,而singTask常見于首頁面和登入頁面
2.singTask 保證目前應用隻有一個執行個體,并且會将棧中目前位置以上的頁面全部銷毀。
3.singleInstance 保證目前棧隻有一個執行個體。
https://blog.csdn.net/lihappyangel/article/details/51831611
https://blog.csdn.net/mr_jingfu/article/details/79077613
https://blog.51cto.com/4397014/2162419
四.四大常用方法
1.onSaveInstanceState()
-當系統“未經你許可”銷毀activity時調用,系統調用順序
-onPause -> onSaveInstanceState -> onStop
2.onRestoreInstanceState
-activity “确實”被系統銷毀時調用,系統調用順序
-OnStart() -> onRestoreInstanceState
參考:https://blog.csdn.net/fenggering/article/details/53907654
3.startActivityForResult() - requestCode 不能為負數 ,當調用Activity的finish()方法,系統會預設resultCode為RESULT_CANCELED
4.onNewIntent() - launchMode設定為standard、singleTask,如果跳轉新的Activity不再建立新的執行個體(不執行onCreate) 會調用onNewIntent方法
參考:常用方法 : https://blog.51cto.com/4397014/2162417
五.橫豎屏
第一步.在AndroidManifest.xml中加入
android:screenOrientation=”portrait”(豎屏)
android:screenOrientation=”landscape”(橫屏)
第二步.建立2種布局(橫豎)檔案
layout-land 橫屏
layout-port 豎屏
在 AndroidManifest.xml檔案中加入
android:configChanges=”orientation|keyboardHidden|screenSize”
切屏不會重新調用各個生命周期。
橫豎屏:https://blog.51cto.com/4397014/2162423
configChanges配置高:
https://blog.csdn.net/xiabing082/article/details/41867463
六.啟動方式
顯示調用
(1)通過包名打開一個應用
(2)通過類名打開一個Activity
隐式調用
需要Intent能比對目标元件的IntentFilter中所設定的過濾資訊.如果不比對将無法啟動目标Activity
(1)IntentFilter 有3大要素 - action category data
(2)1個元件可以配置多個IntentFilter
參考:intent-filter : https://www.jianshu.com/p/5f644e0fdba9