一.四大狀態(tài)
創(chuàng)新互聯(lián)公司是一家專業(yè)提供藤縣企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、網(wǎng)站設(shè)計、H5場景定制、小程序制作等業(yè)務(wù)。10年已為藤縣眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進行中。
running - paused - stopped - killed?
備注:Running狀態(tài)和Paused狀態(tài)是可見的,Stopped狀態(tài)和Killed狀態(tài)時不可見的。
二.七大生命周期?
onCreate - onRestart - onStart - onResume - onPause - onStop - onDestory
備注:
以頁面a跳到b為例
1.A頁面onStop()將在B頁面onResume后執(zhí)行
2.當B頁面為透明、不完全遮擋、Dialog時,A方法不會執(zhí)行onStop,B返回后直接執(zhí)行onResume不會執(zhí)行onStart.
3.系統(tǒng)內(nèi)存不足、用戶點擊Home|Memu鍵、按下電源按鍵、屏幕切換等情況下 onStop、onDestory可能不觸發(fā)
4.onDestory只在調(diào)用finish 和 系統(tǒng)不足情況下才可能觸發(fā)。
參照:
生命周期?:?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()?
-當系統(tǒng)“未經(jīng)你許可”銷毀activity時調(diào)用,系統(tǒng)調(diào)用順序?
-onPause -> onSaveInstanceState -> onStop
2.onRestoreInstanceState
-activity“確實”被系統(tǒng)銷毀時調(diào)用,系統(tǒng)調(diào)用順序?
-OnStart() -> onRestoreInstanceState
參考:https://blog.csdn.net/fenggering/article/details/53907654
3.startActivityForResult()? - requestCode 不能為負數(shù) ,當調(diào)用Activity的finish()方法,系統(tǒng)會默認resultCode為RESULT_CANCELED
4.onNewIntent() - launchMode設(shè)置為standard、singleTask,如果跳轉(zhuǎn)新的Activity不再創(chuàng)建新的實例(不執(zhí)行onCreate) 會調(diào)用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”
切屏不會重新調(diào)用各個生命周期。
橫豎屏:https://blog.51cto.com/4397014/2162423
configChanges配置高:
https://blog.csdn.net/xiabing082/article/details/41867463六.啟動方式
顯示調(diào)用
(1)通過包名打開一個應用
(2)通過類名打開一個Activity
隱式調(diào)用
需要Intent能匹配目標組件的IntentFilter中所設(shè)置的過濾信息.如果不匹配將無法啟動目標Activity
(1)IntentFilter 有3大要素 - action category? data
(2)1個組件可以配置多個IntentFilter?
參考:intent-filter: https://www.jianshu.com/p/5f644e0fdba9
七.創(chuàng)建多入口Activity
activity-alias: https://blog.csdn.net/ahence/article/details/51648768