溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

四大組件(1) - Activity

發(fā)布時間:2020-07-19 17:29:16 來源:網(wǎng)絡(luò) 閱讀:92 作者:lm8751 欄目:移動開發(fā)

.四大狀態(tài)

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.當(dāng)B頁面為透明、不完全遮擋、Dialog時,A方法不會執(zhí)行onStop,B返回后直接執(zhí)行onResume不會執(zhí)行onStart.

3.系統(tǒng)內(nèi)存不足、用戶點(diǎn)擊Home|Memu鍵、按下電源按鍵 、屏幕切換等情況下 onStoponDestory可能不觸發(fā)

4.onDestory只在調(diào)用finish 系統(tǒng)不足情況下才可能觸發(fā)。

參照:

生命周期?:?https://blog.51cto.com/4397014/2162413



.四大加載模式

standard、singTop、singTask、singleInstance

備注:

1.singTop 處于當(dāng)棧頂時,不再開啟新的實(shí)例。常見于點(diǎn)擊消息通知欄彈出列表,而singTask常見于主頁面和登錄頁面

2.singTask 保證當(dāng)前應(yīng)用只有一個實(shí)例,并且會將棧中當(dāng)前位置以上的頁面全部銷毀。

3.singleInstance? 保證當(dāng)前棧只有一個實(shí)例。

參照:

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()?

-當(dāng)系統(tǒng)“未經(jīng)你許可”銷毀activity時調(diào)用,系統(tǒng)調(diào)用順序?

-onPause -> onSaveInstanceState -> onStop

2.onRestoreInstanceState

-activity “確實(shí)”被系統(tǒng)銷毀時調(diào)用,系統(tǒng)調(diào)用順序?

-OnStart() -> onRestoreInstanceState

參考:https://blog.csdn.net/fenggering/article/details/53907654

3.startActivityForResult()? - requestCode 不能為負(fù)數(shù) ,當(dāng)調(diào)用Activityfinish()方法,系統(tǒng)會默認(rèn)resultCodeRESULT_CANCELED

4.onNewIntent() - launchMode設(shè)置為standard、singleTask,如果跳轉(zhuǎn)新的Activity不再創(chuàng)建新的實(shí)例(不執(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)通過包名打開一個應(yīng)用

2)通過類名打開一個Activity


隱式調(diào)用

需要Intent能匹配目標(biāo)組件的IntentFilter中所設(shè)置的過濾信息.如果不匹配將無法啟動目標(biāo)Activity

1IntentFilter 3大要素 - action category? data

21個組件可以配置多個IntentFilter?

參考:intent-filter : https://www.jianshu.com/p/5f644e0fdba9




.創(chuàng)建多入口Activity

activity-alias: https://blog.csdn.net/ahence/article/details/51648768


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI