一.Activity組件1.簡介:Activity組件是Android四大組件之一,通常一個Activity相當於一個用戶界面,我們可以通過載入佈局文件將Android提供的各種控制項及自定義控制項顯示到用戶界面,併為其註冊監聽,來響應用戶的即時操作。2.Activity生命周期方法:①onCreate ...
一.Activity組件
1.簡介:Activity組件是Android四大組件之一,通常一個Activity相當於一個用戶界面,我們可以通過載入佈局文件將Android提供的各種控制項及自定義控制項顯示到用戶界面,併為其註冊監聽,來響應用戶的即時操作。
2.Activity生命周期方法:
①onCreate():Activity被第一次創建時執行該方法,該方法通常用來做一些初始化操作;
②onStart():當Activity對用戶可見時會執行該方法;
③onResume():當Activity開始與用戶交互時,會執行該方法;
④onRestart():把Activity從onStop()狀態喚醒時,會執行該方法;
⑤onPause():當前Activity啟動一個不完全覆蓋當前Activity的Activity時,會調用該方法,也就是說該方法是用來過度界面的;
⑥onStop():當前Activity對用戶完全不可見的時候,會調用當該方法;
⑦onDestroy():當Activity銷毀前會調用該方法
⑧onSaveInstanceState():該方法用於保存Activity的狀態信息;
⑨onRestoreInstanceState()該方法用於重新載入Activity的狀態信息;
⑩onConfigurationChanged():該方法用於屏幕橫豎屏切換時處理相關操作
3.生命周期方法在不同情況的執行順序:
兩個Activity之間:
當顯示MainActivity時(執行順序:①--》②--》③)
如果直接點擊後退鍵,那麼(執行順序:⑤--》⑥--》⑦)即MainActivity從back stack清除,退出app。
如果按下Home鍵時(執行順序:⑤--》⑥),再次打開應用(執行順序:④--》②--》③)
如果需要在MainActivity中打開OtherActivity,那麼首先執行MainActivity的⑤---》【再執行OtherActivity的①--》②--》③】--》接著執行MainActivity的⑥,此時如果需要通過後退鍵返回到MainActivity時,執行OtherActivity的⑤,接著執行MainActivity的④--》②-->③,然後執行OtherActivity的⑥--》⑦
一個Activity橫豎屏切換時:
已經顯示的Activity切換成橫屏時,執行順序⑧--》⑤--》⑥--》⑦--》①--》②--》⑨--》③;不設置Activity的android:configChanges時,切屏會重新調用各個生命周期,切橫屏時會執行一次,切豎屏時會執行兩次;設置Activity的android:configChanges="orientation"時,切屏還是會重新調用各個生命周期,切橫屏或者豎屏時各只會執行一次;
設置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新調用各個生命周期,只會執行⑩
二.Service組件
1.簡介:Service是一個沒有用戶界面的長生命周期的程式,主要用於開發那些不需要圖形界面的功能,比如:音樂播放器的後臺播放功能。
2.Service的生命周期方法:
onCreate():第一次創建服務時執行該方法;
onStartCommand():啟動服務時執行該方法;
onBind(Intent intent):通過bindService()方法啟動的service執行該方法
onStart():運行服務時執行該方法;
onDestroy():終止服務時執行該方法;
3.生命周期方法在不同情況的執行順序:
當通過startService()啟動Service時: service生命周期方法的執行順序:onCreate()---》onStartCommand()---》onStart()...---》判斷:①重新啟動服務;②終止服務;
選擇①時,接著執行2.onStartCommand()---》3.onStart()....
選擇②時,執行4.onDestroy()方法終止服務;
當通過bindService()啟動Service時:Service生命周期方法的執行順序:onCreate()---》onBind(),不執行onStartCommand()和onStart()
三.BroadcastReceiver組件
1.簡介:Android系統運行後通常會發出各種廣播,比如低電量,時區改變,修改語言選項等等的系統操作都會使得系統發出對應的廣播,而BroadcastReceiver通常用於處理系統的廣播並作出相應處理。同時也可以定製應用的廣播並將信息反饋給用戶
2.生命周期方法:
onReceive():當廣播發送到接受者時執行該方法,可以通過該方法查看廣播的數據
四.ContentProvider組件
1.簡介:這個類主要是對Android系統中進行共用的數據進行包裝,並提供一組統一的訪問介面供其他程式調用,開發過程中,我們只需要繼承這個類,並重寫該類用於提供數據和存儲數據的方法,就可以向其他應用共用其數據。
2.ContentProvider的生命周期方法:
onCreate():第一次創建ContentProvider的時候執行該方法
五.Fragment控制項:
1.簡介:Fragment與Activity關係緊密,通常我們在一個Activity中放置多個Fragment來提高界面的可操作性,儘管它們擁有類似的生命周期方法和執行順序,但Fragment是一個控制項,而Activity是一個組件。因此,對於Fragment來說,主要還是為了實現在大屏幕設備上動態的和更靈活的UI設計,這也優化了Activity面對的界面適配問題。
2.Fragment的生命周期方法:
①onAttach():在Activity與Fragment關聯之後執行該方法;
②onCreate():Fragment第一次創建時執行該方法;
③onCreateView():在Fragment載入佈局文件,或者創建視圖的時候執行該方法;
④onActivityCreated():在Activity的onCreate()方法執行完之後執行該方法;
⑤onStart():當Fragment對用戶可見時執行該方法;
⑥onResume():當Fragment開始運行,並可以和用戶交互時執行該方法;
⑦onPause();當Fragment對用戶即將不可見時執行該方法;
⑧onStop():當Fragment完全不可見時執行該方法;
⑨onDestroy():
⑩onDestroyView():會使onCreateView()中創建的視圖與當前Fragment相分離,並清除該視圖;
onDetach():在Activity與Fragment解除關聯後執行該方法;
3.Fragment的生命周期方法執行順序:
在Activity打開某個Fragment時,Fragment生命周期方法執行順序為①---》②---》③---》④---》⑤---》⑥{此時當點擊後退鍵時,執行順序為:⑦---》⑧---》⑩---》⑨---》onDetach();當點Home鍵時執行的順序為⑦---》⑧,當返回到app時,執行順序為⑤---》⑥}
六.AsyncTask類
1.簡介:Android的AsyncTask比Handler更輕量級一些,適用於簡單的非同步處理,目的都是為了不阻塞主線程,處理後臺的比較耗時的任務。使得用戶在使用過程中不會出現長時間等待界面響應及卡頓的現象,從而達到比較高的用戶體驗。
2.AsyncTask中重要的的方法:
①onPreExecute():當非同步任務執行之前開始執行此方法,可以在這裡顯示進度對話框;
②doInBackground():此方法在後臺線程執行,完成非同步任務的主要工作,通常需要較長的時間。在執行過程中可以通過調用publishProgress()來更新任務的進度;
③onProgressUpdate():此方法在主線程中執行,用於顯示任務執行的進度;
④onPostExecute():此方法在主線程中執行,非同步任務執行的結果作為此方法的參數返回;
3.AsyncTask方法執行順序:①---》②---》③---》④
*備註:以上內容涉及的所有方法為了便於閱讀,都省去了參數;