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