av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

Android非異常情況下的Activity生命周期分析

瀏覽:104日期:2022-09-21 09:32:32

Activity非異常情況下的生命周期是指,用戶正常參與UI交互的情況下,Activity所經(jīng)過的生命周期的改變;一般情況下,Activity會(huì)經(jīng)過以下幾個(gè)生命周期。

1、OnCreate(): 表示Activity正在創(chuàng)建,這個(gè)是生命周期的第一個(gè)方法,該方法只調(diào)用一次,在這個(gè)方法中,一般做變量初始化的操作,例如綁定一個(gè)Button控件的Id等。

2、onRestart(): 表示Activity正在重新啟動(dòng),一般情況下,如果最前面的Activity從不可見狀態(tài)變?yōu)榭梢姞顟B(tài)時(shí),onRestart()這個(gè)方法都會(huì)被調(diào)用,一般情況下都是用戶操作導(dǎo)致的;例如,當(dāng)前這個(gè)Activity叫A,用戶啟動(dòng)了一個(gè)新的Activity叫B,這時(shí)A就會(huì)暫停,也就是onPause()和 onStop()被調(diào)用了,接著用戶又回到了這個(gè)A時(shí),就會(huì)出現(xiàn)這種情況。

3、onStart(): 表示Activity正在被啟動(dòng),將要開始,這時(shí)的Activity是可見狀態(tài)了,但是沒有出呈現(xiàn)到前臺(tái)的,還不能和用戶打交道,其實(shí)Activity已經(jīng)顯示出來了,只是我們看不到而已

4、onResume(): 表示Activity已經(jīng)可見了,也就是呈現(xiàn)在前臺(tái)上,即我們?nèi)庋勰軌蚩吹靡娏恕N覀円粢膺@個(gè)onResume()和onStart()的區(qū)別,onStart()和onResume()都表示是Activity的可見狀態(tài),但是調(diào)用onStart()方法時(shí)Activity是在后臺(tái),而調(diào)用onResume()方法時(shí)Activity是在前臺(tái)的。

5、onPause(): 表示Activity正在停止,這時(shí)候Activity的狀態(tài)是不可見的,但是還是顯示在前臺(tái)的;一般情況下,下一個(gè)生命周期的方法onStop()就會(huì)被調(diào)用。在這里可以做一些存儲(chǔ)數(shù)據(jù)的操作,但不可以過于耗時(shí),因?yàn)闀?huì)影響Activity顯示的效果。

6、onStop(): 表示Activity即將停止,這時(shí)候Activity的狀態(tài)是不可見的,也不是顯示在前臺(tái)上了,在這里可以做一些稍微重量級(jí)的回收工作,也不可以太耗時(shí)。

7、onDestroy(): 表示Activity即將被銷毀,這是Activity生命周期的最后一個(gè)方法,在這里可以做一些資源的釋放。

下面以一張圖展示非異常情況下生命周期調(diào)用的方法

Android非異常情況下的Activity生命周期分析

好了,前面分析了那么多,我們來寫一個(gè)小demo看一下效果。(1)、首先創(chuàng)建第一個(gè)Activity,名叫ActivityA,代碼如下所示:

var activityName: String? = 'ActivityA' val TAG: String? = 'Activity' override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_a) Log.d(TAG,activityName + '---------onCreate') } override fun onRestart() { super.onRestart() Log.d(TAG,activityName + '---------onRestart') } override fun onStart() { super.onStart() Log.d(TAG,activityName + '---------onStart') } override fun onResume() { super.onResume() Log.d(TAG,activityName + '---------onResume') } override fun onPause() { super.onPause() Log.d(TAG,activityName + '---------onPause') } override fun onStop() { super.onStop() Log.d(TAG,activityName + '---------onStop') } override fun onDestroy() { super.onDestroy() Log.d(TAG,activityName + '---------onDestroy') } public fun onClick(v: View) { var clazz = ActivityB:: class.java var it: Intent = Intent(this,clazz) startActivity(it) }

對(duì)應(yīng)的ActivityA的activity_a.xml文件如下所示:

<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:orientation='vertical' android:layout_height='match_parent'> <TextView android:layout_width='match_parent' android:gravity='center' android:text='這是一個(gè)Activity,名字叫A' android:layout_height='wrap_content' /> <Button android:layout_width='match_parent' android:text='點(diǎn)擊此按鈕,可啟動(dòng)新的Activity' android:onClick='onClick' android:layout_height='wrap_content' /></LinearLayout>

(2)、創(chuàng)建另外一個(gè)Activity,名叫ActivityB,如下所示:

val TAG: String? = 'Activity'var activityName: String? = 'ActivityB'override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_b) Log.d(TAG,activityName + '---------onCreate')}override fun onRestart() { super.onRestart() Log.d(TAG,activityName + '---------onRestart')}override fun onStart() { super.onStart() Log.d(TAG,activityName + '---------onStart')}override fun onResume() { super.onResume() Log.d(TAG,activityName + '---------onResume')}override fun onPause() { super.onPause() Log.d(TAG,activityName + '---------onPause')}override fun onStop() { super.onStop() Log.d(TAG,activityName + '---------onStop')}override fun onDestroy() { super.onDestroy() Log.d(TAG,activityName + '---------onDestroy')}

ActivityB對(duì)應(yīng)的activity_b.xml的文件如下所示~~

<?xml version='1.0' encoding='utf-8'?> <LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:orientation='vertical' android:layout_height='match_parent'> <TextView android:layout_width='match_parent' android:text='這是一個(gè)Activity,名字叫B' android:gravity='center' android:layout_height='wrap_content' /></LinearLayout>

第一次運(yùn)行的結(jié)果如下所示~~~~

Android非異常情況下的Activity生命周期分析

以下是相應(yīng)的日志打印

01-08 11:48:39.068 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityA---------onCreate01-08 11:48:39.069 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityA---------onStart01-08 11:48:39.069 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityA---------onResume

點(diǎn)擊“點(diǎn)擊此按鈕,可啟動(dòng)新的Activity”按鈕,效果圖如下所示

Android非異常情況下的Activity生命周期分析

相應(yīng)的日志如下所示:

01-08 11:57:44.455 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityA---------onPause01-08 11:57:44.465 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityB---------onCreate01-08 11:57:44.466 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityB---------onStart01-08 11:57:44.466 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityB---------onResume01-08 11:57:44.843 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityA---------onStop

點(diǎn)擊返回鍵,返回ActivityA,日志如下所示:

01-08 12:22:40.318 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityB---------onPause01-08 12:22:40.319 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityA---------onRestart01-08 12:22:40.319 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityA---------onStart01-08 12:22:40.319 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityA---------onResume01-08 12:22:41.125 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityB---------onStop01-08 12:22:41.125 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityB---------onDestroy

由于技術(shù)水平有限,文章中難免會(huì)有錯(cuò)誤,歡迎大家批評(píng)指正,另外附上小demoActivity生命周期的方法調(diào)用過程,謝謝大家的閱讀。~~~~

以上就是Android非異常情況下的Activity生命周期分析的詳細(xì)內(nèi)容,更多關(guān)于Android Activity生命周期的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 国产精品久久免费 | 青青草在线观看视频 | 四虎4hu永久免费网站影院 | 欧美日韩国产成人 | 一级片网址 | 国产福利一区二区三区 | 中文字幕不卡在线观看 | 五月天网址 | 免费的黄色网址 | 亚洲精品综合 | 日韩精品在线播放 | 伊人影院久久 | 黄色小视频在线播放 | 美女黄色小说 | 国产日韩欧美一区二区 | 一区二区三区影院 | 国产一级黄色大片 | 可以看的毛片 | 中日韩毛片 | 午夜在线免费视频 | 日本中文在线 | 亚洲黄色一级 | 免费观看成人 | 成人xxx | 992tv在线| 五月婷在线 | 国产精品久久久久永久免费看 | 91精品国产色综合久久不卡98 | 欧美视频在线一区 | 欧美a一级 | 日韩视频免费大全中文字幕 | 欧美一区二区在线视频 | 亚洲日本欧美 | 久久综合热 | 天天澡天天狠天天天做 | 久久免费看视频 | 黄色一级片免费看 | www.一区二区 | 亚洲影院在线 | 成人爽a毛片一区二区免费 www.欧美精品 | 久久都是精品 |