亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2021年01月16日 14:59:11   作者:小二玩編程  
這篇文章主要介紹了Android非異常情況下的Activity生命周期分析,幫助大家更好的理解和使用Android,感興趣的朋友可以了解下

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

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

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

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

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

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

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

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

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

好了,前面分析了那么多,我們來寫一個小demo看一下效果。
(1)、首先創(chuàng)建第一個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)
 }

對應(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="這是一個Activity,名字叫A"
    android:layout_height="wrap_content" />
  <Button
    android:layout_width="match_parent"
    android:text="點(diǎn)擊此按鈕,可啟動新的Activity"
    android:onClick="onClick"
    android:layout_height="wrap_content" />
</LinearLayout>

(2)、創(chuàng)建另外一個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對應(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="這是一個Activity,名字叫B"
   android:gravity="center"
   android:layout_height="wrap_content" />
</LinearLayout>

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

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

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

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

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

01-08 11:57:44.455 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityA---------onPause
01-08 11:57:44.465 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityB---------onCreate
01-08 11:57:44.466 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityB---------onStart
01-08 11:57:44.466 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityB---------onResume
01-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---------onPause
01-08 12:22:40.319 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityA---------onRestart
01-08 12:22:40.319 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityA---------onStart
01-08 12:22:40.319 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityA---------onResume
01-08 12:22:41.125 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityB---------onStop
01-08 12:22:41.125 3021-3021/activitylifecycle.xe.com.activitylifecycle D/Activity: ActivityB---------onDestroy

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

以上就是Android非異常情況下的Activity生命周期分析的詳細(xì)內(nèi)容,更多關(guān)于Android Activity生命周期的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Android超詳細(xì)講解組件ScrollView的使用

    Android超詳細(xì)講解組件ScrollView的使用

    本節(jié)帶來的是Android基本UI控件中的第十個:ScrollView(滾動條),或者我們應(yīng)該叫他?豎直滾動條,對應(yīng)的另外一個水平方向上的滾動條:HorizontalScrollView,先讓我們來了解ScrollView
    2022-03-03
  • Android中Glide庫的使用小技巧總結(jié)

    Android中Glide庫的使用小技巧總結(jié)

    Glide是 Google推薦的圖片加載庫,相信大家都不陌生,這篇文章主要給大家總結(jié)介紹了關(guān)于Android中Glide庫的使用小技巧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • Android Activity的生命周期與加載模式超詳細(xì)圖文解析

    Android Activity的生命周期與加載模式超詳細(xì)圖文解析

    這篇文章主要介紹了Android Activity的生命周期與加載模式,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • RecyclerView多層級數(shù)據(jù)實(shí)現(xiàn)示例詳解

    RecyclerView多層級數(shù)據(jù)實(shí)現(xiàn)示例詳解

    這篇文章主要為大家介紹了RecyclerView多層級數(shù)據(jù)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Android ListView列表視圖的使用方法

    Android ListView列表視圖的使用方法

    這篇文章主要為大家詳細(xì)介紹了Android ListView列表視圖的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Flutter StaggeredGridView實(shí)現(xiàn)瀑布流效果

    Flutter StaggeredGridView實(shí)現(xiàn)瀑布流效果

    這篇文章主要為大家詳細(xì)介紹了Flutter StaggeredGridView實(shí)現(xiàn)瀑布流效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Android仿淘寶預(yù)訂日歷(18)

    Android仿淘寶預(yù)訂日歷(18)

    這篇文章主要為大家詳細(xì)介紹了Android仿淘寶預(yù)訂日歷的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Android PC投屏功能實(shí)現(xiàn)的示例代碼

    Android PC投屏功能實(shí)現(xiàn)的示例代碼

    本篇文章主要介紹了Android PC投屏功能實(shí)現(xiàn)的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Android實(shí)現(xiàn)伸縮彈力分布菜單效果的示例

    Android實(shí)現(xiàn)伸縮彈力分布菜單效果的示例

    本文介紹下在Android中實(shí)現(xiàn)伸縮彈力分布菜單效果。這種效果比較炫酷,有需要的朋友可以參考一下。
    2016-10-10
  • Android手機(jī)屏幕px與dp互轉(zhuǎn)的工具類

    Android手機(jī)屏幕px與dp互轉(zhuǎn)的工具類

    今天小編就為大家分享一篇關(guān)于Android手機(jī)屏幕px與dp互轉(zhuǎn)的工具類,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論