# android开发:4-1、Activity启动方式、生命周期、不同activity的数据传递
4、Activity活動(dòng)簡(jiǎn)介
- 什么是Activity:
- 如何創(chuàng)建Activity:
- Activity啟動(dòng)方式:
- Activity的生命周期:
- 不同Activity之間數(shù)據(jù)的傳遞:
什么是Activity:
Activity是Android的四大組件之一,專(zhuān)門(mén)負(fù)責(zé)控制視圖View與用戶(hù)進(jìn)行交互的活動(dòng)類(lèi),在實(shí)際開(kāi)發(fā)中使用頻率最高的組件之一。(通俗來(lái)講,activity就相當(dāng)于界面,QQ界面、微信界面之類(lèi)的)。
如何創(chuàng)建Activity:
Activity在創(chuàng)建時(shí)必須要在AndroidMainifest.xml文件中通過(guò)和標(biāo)簽進(jìn)行注冊(cè),這樣才能通過(guò)解析AndroidMainifest.xml文件中的標(biāo)簽找到對(duì)應(yīng)的Activity進(jìn)行啟動(dòng)。在Android studio或者eclipse中,如果通過(guò)想到方式進(jìn)行創(chuàng)建activity,軟件將會(huì)自動(dòng)的在AndroidMainifest.xml文件中注冊(cè)。若通過(guò)創(chuàng)建class的方式創(chuàng)建,則需要手動(dòng)在AndroidMainifest.xml文件中注冊(cè)。
Activity啟動(dòng)方式:
Activity的啟動(dòng)方式有4中,在不同的場(chǎng)景下在AndroidMainifest.xml的標(biāo)簽的“android:launchMode” 屬性來(lái)指定啟動(dòng)模式,區(qū)分Activity啟動(dòng)方式的好處就是可以避免創(chuàng)建大量重復(fù)的Activity
在說(shuō)明activity啟動(dòng)方式前,想要介紹一個(gè)概念叫做“任務(wù)棧”,每一個(gè)應(yīng)用程序都有一個(gè)任務(wù)棧,用于存放activity,功能類(lèi)似于函數(shù)的調(diào)用棧,不懂的小伙伴們可以自行百度。入棧的先后順序代表了Activity的出現(xiàn)順序。例如Activity的出現(xiàn)順序?yàn)锳ctivity1 -> Activity2 -> Activity3,則任務(wù)棧中的Activity順序?yàn)?#xff1a;
有了任務(wù)棧的概念,我們就來(lái)看一下4種啟動(dòng)方式:
1、standard:每次激活activity都會(huì)創(chuàng)建一個(gè)activity實(shí)例,例如:源棧頂為activity2,再次激活activity2時(shí),會(huì)再次創(chuàng)建一個(gè)activity2:
2、singleTop:若某個(gè)activity自己激活自己,即任務(wù)棧棧頂就是該activity,則不需要?jiǎng)?chuàng)建activity實(shí)例,其他情況則需要?jiǎng)?chuàng)建,如:
3、singleTask:如果要激活的activity已經(jīng)存在在任務(wù)棧中,則不需要?jiǎng)?chuàng)建activity實(shí)例,只需要將此activity之上的所有實(shí)例出棧,讓此activity置于棧頂即可,如:
4、singleInstance:此種啟動(dòng)模式用于多個(gè)application,當(dāng)application1的任務(wù)棧已經(jīng)激活了activity1,application也要激活activity1,則直接共享application1的任務(wù)棧中的activity1即可,如:
Activity的生命周期:
廢話不多說(shuō),先看圖:
下面我們來(lái)研究一下這張圖中的7種activity方法:不廢話,再來(lái)看圖:
1、啟動(dòng)activity,調(diào)用onCreate()方法,然后調(diào)用onStart()方法,然后調(diào)用onReaume()方法,activity進(jìn)入運(yùn)行狀態(tài)
2、當(dāng)前activity被其他activity覆蓋或者鎖屏?xí)r,調(diào)用onPause()方法暫停當(dāng)前activity
3、 當(dāng)前activity由被覆蓋狀態(tài)回到前臺(tái)或者解鎖時(shí)系統(tǒng)調(diào)用onResume()方法,再次回到運(yùn)行狀態(tài)
4、當(dāng)前activity轉(zhuǎn)到新的activity界面或者按Home鍵回到主屏,自身退居后臺(tái)時(shí)系統(tǒng)先調(diào)用onPause()方法,然后調(diào)用onStop()方法,進(jìn)入停滯狀態(tài)
5、用戶(hù)后退回此activity,系統(tǒng)調(diào)用onRestart(),onStart(),onResume()方法,再次進(jìn)入運(yùn)行狀態(tài)
6、當(dāng)前activity處于被覆蓋或者后臺(tái)不可見(jiàn)狀態(tài)(2和4),系統(tǒng)內(nèi)存不足,殺死當(dāng)前activity;然后用戶(hù)又回到當(dāng)前activity,則調(diào)用onCreate(),onStart(),onResume()方法,進(jìn)入運(yùn)行狀態(tài)
7、用戶(hù)退出當(dāng)前activity,系統(tǒng)調(diào)用onPause(),onStop(),onDestory()方法,結(jié)束當(dāng)前activity
不同Activity之間數(shù)據(jù)的傳遞:
由于內(nèi)容較多,請(qǐng)看下節(jié)內(nèi)容 android開(kāi)發(fā):4-2 不同Activity之間數(shù)據(jù)的傳遞、代碼實(shí)例分析,不同Activity之間數(shù)據(jù)的傳遞,我會(huì)用實(shí)例代碼進(jìn)行分析
總結(jié)
以上是生活随笔為你收集整理的# android开发:4-1、Activity启动方式、生命周期、不同activity的数据传递的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 第一章 Qt入门
- 下一篇: 【LeetCode】50. Pow(x,