日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android四大组件之——Activity的生命周期(图文详解)

發布時間:2023/12/15 Android 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android四大组件之——Activity的生命周期(图文详解) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ??? 轉載請在文章開頭處注明本博客網址:http://www.cnblogs.com/JohnTsai

????? 聯系方式:JohnTsai.Work@gmail.com

? ? ? [Android四大組件學習系列Activity篇]

? ? ? 1.Android四大組件之——Activity(一)定義、狀態和后退棧(圖文詳解)

????? 2.Android四大組件之——Activity的生命周期(圖文詳解)

???? 上一篇文章講了Activity的定義、狀態和后退棧,現在講講Activity的重點和難點——Activity的生命周期。

?

  • Activity生命周期的回調方法:

? ? ?

//創建Activity public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);} //Activity快要變成可見的 @Overrideprotected void onStart() {super.onStart();} //Activity變成可見的,處于運行狀態 @Overrideprotected void onResume() {super.onResume();} //其他Activity獲得用戶焦點,(Activity快要暫停了) @Overrideprotected void onPause() {super.onPause();} //Activity不再可見,處于停止狀態 @Overrideprotected void onStop() {super.onStop();} //Activity快要被銷毀了 @Overrideprotected void onDestroy() {super.onDestroy();
}

?

這些方法定義了Activity完整的生命周期,實現這些方法,我們能監控Activity生命周期中的三個嵌套循環(monitor three nested loops in the activity lifecycle) 1.Activity的entire?lifetime(全部的生命期)發生在 ????????????????????????????? 調用onCreate()和調用onDestory()之間。 ??????? 在onCreate()方法中執行全局狀態的建立(例如定義布局),在onDestroy()方法中釋放所有保存的資源。 ??????? ? ?????? 2.Activity的visible lifetime(可見的生命期)發生在 ????????????????????????????? 調用onStart()onStop()之間。 ???????? 在這個期間,用戶能在屏幕上看見Activity,和它進行交互。 ???? ?? 系統在Activity的完整壽命中可能多次調用onStart()和onStop(),正如Activity交替地對用戶可見或隱藏。 ? ????? 3Activity的foreground lifetime?(前臺的生命期)發生在 ?????????????????????????????? 調用onResume()onPause()之間。 ?????? 在這期間,Activity在屏幕上所有其他Activity的前面,有用戶輸入焦點。 ?????? 一個Activity能頻繁的在前臺進入和出去之間轉變。

?????? 下面這張圖很好的講解了Activity的生命周期和上面說的三種生命期:

???????

??????

???? ? 下面通過一個Demo來學習以下Activity的生命周期:

????? Demo很簡單,就只有兩個Activity,MainActivity和SecondActivity和一個按鈕。點擊按鈕,由MainActivity跳轉到SecondActivity。

????? MainActivity:

1 package com.example.activitytest; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.util.Log; 7 import android.view.View; 8 import android.view.View.OnClickListener; 9 import android.widget.Button; 10 11 public class MainActivity extends Activity { 12 13 private Button btn; 14 private static final String TAG = "ActivityTest"; 15 @Override 16 protected void onCreate(Bundle savedInstanceState) { 17 super.onCreate(savedInstanceState); 18 Log.d(TAG, "MainActivity onCreate"); 19 setContentView(R.layout.activity_main); 20 btn = (Button)findViewById(R.id.btn); 21 btn.setOnClickListener(new OnClickListener() { 22 23 @Override 24 public void onClick(View v) { 25 Intent intent = new Intent(MainActivity.this,SecondActivity.class); 26 startActivity(intent); 27 } 28 }); 29 30 } 31 @Override 32 protected void onPause() { 33 Log.d(TAG, "MainActivity onPause "); 34 super.onPause(); 35 } 36 @Override 37 protected void onResume() { 38 Log.d(TAG, "MainActivity onResume "); 39 super.onResume(); 40 } 41 @Override 42 protected void onStart() { 43 super.onStart(); 44 Log.d(TAG,"MainActivity onStart "); 45 } 46 @Override 47 protected void onStop() { 48 super.onStop(); 49 Log.d(TAG, "MainActivity onStop "); 50 } 51 @Override 52 protected void onDestroy() { 53 super.onDestroy(); 54 Log.d(TAG, "MainActivity onDestroy "); 55 } 56 @Override 57 protected void onRestart() { 58 super.onRestart(); 59 Log.d(TAG, "MainActivity onRestart "); 60 } 61 }

?? SecondActivity:

?

1 package com.example.activitytest; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.util.Log; 6 7 public class SecondActivity extends Activity { 8 private static final String TAG = "ActivityTest"; 9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 setContentView(R.layout.second_layout); 12 super.onCreate(savedInstanceState); 13 Log.d(TAG,"SecondActivity onCreate"); 14 15 } 16 @Override 17 protected void onStart() { 18 super.onStart(); 19 Log.d(TAG, "SecondActivity onStart"); 20 } 21 @Override 22 protected void onResume() { 23 super.onResume(); 24 Log.d(TAG, "SecondActivity onResume"); 25 26 } 27 @Override 28 protected void onPause() { 29 super.onPause(); 30 Log.d(TAG, "SecondActivity onPause"); 31 } 32 @Override 33 protected void onStop() { 34 super.onStop(); 35 Log.d(TAG, "SecondActivity onStop"); 36 } 37 @Override 38 protected void onDestroy() { 39 super.onDestroy(); 40 Log.d(TAG, "SecondActivity onDestroy"); 41 } 42 @Override 43 protected void onRestart() { 44 super.onRestart(); 45 Log.d(TAG, "SecondActivity onRestart"); 46 } 47 } SecondActivity

?

?使用Activity需要在Manifest.xml文件中注冊:

?

1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.activitytest" 4 android:versionCode="1" 5 android:versionName="1.0" > 6 7 <uses-sdk 8 android:minSdkVersion="8" 9 android:targetSdkVersion="21" /> 10 11 <application 12 android:allowBackup="true" 13 android:icon="@drawable/ic_launcher" 14 android:label="@string/app_name" 15 android:theme="@style/AppTheme" > 16 <activity 17 android:name=".MainActivity" 18 android:label="@string/app_name" > 19 <intent-filter> 20 <action android:name="android.intent.action.MAIN" /> 21 <category android:name="android.intent.category.LAUNCHER" /> 22 23 </intent-filter> 24 </activity> 25 <activity 26 android:name=".SecondActivity" 27 android:label="SecondActivity" 28 android:theme="@android:style/Theme.Dialog" 29 > 30 </activity> 31 </application> Manifest.xml

??? 1. 運行應用,MainActivity運行。

???? 可以看出一個Activity運行調用的回調方法是:onCreate()->onStart()->onResume()

??

??? 2. 點擊跳轉按鈕,由MainActivity跳轉到SecondActivity:

????? 1>SecondActivity是Dialog。

????

???? 由于SecondActivity是Dialog,所以MainActivity依然可見,所以只調用了它的onPause()方法。

???? 2>若將SecondActivity改為不是Dialog(只需在Manifest.xml文件中刪掉 android:theme="@android:style/Theme.Dialog"這一行即可)

???? 再點擊跳轉按鈕:

???

????? 對于MainActivity,由于不可見,狀態由運行變為停止。

????? 依次調用了它的回調方法:onPause()->onStop()

????? 3.Activity處于運行狀態時,點擊返回按鈕。

?????

??????? 點擊返回按鈕,Activity由運行狀態變為死亡狀態,依次調用它的回調方法:onPause()->onStop()->onDestroy()

????? 4.Activity處于運行狀態,點擊主頁按鈕,返回桌面。

????

?????? Activity由運行狀態變為停止狀態,依次調用它的回調方法:onPause()->onStop()

?????? 5.Activity處于停止狀態,即由桌面返回到Activity。

???????

??????? 停止->運行,依次調用回調方法:onRestart()->onStart()->onResume()

????? 6.Activity處于運行狀態,旋轉屏幕:

??????

??????? 可以看出,旋轉屏幕是一個銷毀Activity然后重新創建Activity的過程。

???????? 運行->暫停->停止->死亡->運行

??????? 依次調用回調方法:onPause()->onStop->onDestroy()->onCreate()->onStart()->onResume()

?

? ? 7.Activity處于運行狀態,手機此時鎖屏。

? ??

? ? 可以看出,手機鎖屏,此時由于Activity不可見,會進入停止狀態。

? ? 依次調用回調方法:onPause()->onStop()

?

? ? 8.當應用正在運行時,手機鎖屏,然后解鎖回到應用界面。

? ??

? ? 可以看出應用從停止狀態恢復到運行狀態。

? ? 依次調用回調方法:onRestart()->onStart()->onResume()

?

????????? 本人郵箱:JohnTsai.Work@gmail.com,歡迎交流討論。 ?????

????????? 歡迎轉載,轉載請在文章開頭處注明本博客網址:http://www.cnblogs.com/JohnTsai

????????? 如果喜歡,請點推薦!謝謝~

總結

以上是生活随笔為你收集整理的Android四大组件之——Activity的生命周期(图文详解)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品国产一区二区三区四区 | 国产亚洲视频一区 | 亚洲无毛 | 美妇湿透娇羞紧窄迎合 | 亚洲wwww | 好吊色综合 | 日韩精品久久久久久 | 亚洲五月婷婷 | 性猛交xxxx乱大交孕妇2十 | 很黄的网站在线观看 | 有码中文字幕 | 国产第一页av| 久久动态图 | 日日操夜夜 | 日本中文字幕观看 | 好爽快一点高潮了 | 久久夜视频 | 四虎国产精品永久免费观看视频 | 色噜噜一区二区三区 | 亚洲成人av在线播放 | 国产免费看黄 | 国产精品福利片 | 亚洲av人人澡人人爽人人夜夜 | 欧美精品a区 | 亚洲欧美中文字幕5发布 | 成人欧美一区二区三区黑人孕妇 | 国内毛片毛片毛片毛片 | 色骚网| 久久夜色精品国产欧美乱极品 | 午夜91视频 | 欧美三级图片 | 亚洲精品国产福利 | 毛片一卡二卡 | 特级淫片裸体免费看 | 中文字幕在线观看高清 | 成人无码一区二区三区 | 国产精品偷伦视频免费观看了 | 18被视频免费观看视频 | 情侣黄网站免费看 | 欧美国产91 | 精品日韩中文字幕 | 天天射天天色天天干 | 人人妻人人澡人人爽久久av | 亚洲精品在 | av青青| 91精品在线观看入口 | 熟女少妇一区二区 | 在线天堂v | 人妻奶水人妻系列 | 草草草av | 欧美影院一区二区三区 | 影音先锋成人资源网站 | 风韵少妇spa私密视频 | 日韩中文字幕一区 | 91波多野结衣 | 久久wwww| av免费毛片| 久久久久久国产精品无码 | 亚洲欧美日韩一区二区三区四区 | 色男人影院 | 欧美成人r级一区二区三区 中文无码一区二区三区在线观看 | 国产自在线拍 | 91精品区| 美女三级黄色 | 中文不卡在线 | 精品无码一区二区三区爱欲 | 99在线精品视频免费观看20 | 亚洲三级理论 | 国产精品伦理一区二区 | 国产一级片在线播放 | 欧美人体视频 | 国产精品久久777777 | 美女扒开腿让人桶爽原神 | 91综合色| 天天干天天爱天天操 | 中国精品视频 | 在线观看日本一区二区 | 亚洲天码中字 | 成人av免费在线观看 | 国产第一页视频 | 青青青在线免费 | 毛片其地 | 中文字幕国产剧情 | 精品国产丝袜一区二区三区乱码 | 女教师高潮黄又色视频 | 在线一区二区三区四区 | 成全影视在线观看第8季 | 五月天黄色小说 | 欧美视频免费在线观看 | 好紧好爽再浪一点视频 | 亚洲a在线视频 | 狠狠久久婷婷 | 黄av在线播放 | 国产精品96 | 天天看毛片 | 久久成人一区 | 久久毛片网站 | 国产精品美女www | 国产三区av |