# Android Activity 的流程和基本概念
在java 中 所有程序的入口時main()函數(shù)曹鸠,而對于android來說,所以程序的開始都是onCreate().一般在android四大組件中斥铺,Activity 是最為必要和重要的一個UI展示活動彻桃。
An activity is a single, focused thing that the user can do. Almost all activities interact with the user, so the Activity class takes care of creating a window for you in which you can place your UI with[setContentView(View).
Android 系統(tǒng)會通過調(diào)用對應(yīng)于其生命周期中特定階段的特定回調(diào)方法在Activity實例中啟動代碼。
Activity 是一個顯示UI的組件晾蜘,所有控件的new 或者findViewById()中獲得組件的控制權(quán)進(jìn)行各種onClick,以及各種動畫操作邻眷,包括view的更新是必須在ui主線程中的眠屎,在Activity中onCreate()的線程中就是主線程,當(dāng)然你也可以在不同的Activity狀態(tài)中對view進(jìn)行操作肆饶。
如圖改衩,圖中是來自google的android activity 的run 的一個示意圖,從中我們可以很明白得看見一個activity的幾個狀態(tài)驯镊。
并不是所以的activity都會有這幾個循環(huán)葫督,可以這么說所有的activity都有這幾個函數(shù),到activity這個線程結(jié)束的這幾個狀態(tài)都會經(jīng)過板惑,除了onRestart().
onRestart()是什么時候?qū)崿F(xiàn)的呢橄镜?
我做了個demo,只要你運(yùn)行了activity,并用home鍵冯乘,再進(jìn)入app就會調(diào)用這個函數(shù)洽胶。
Called after your activity has been stopped, prior to it being started again.Always followed by onStart()。
官方的定義是你的anctivity已經(jīng)調(diào)用了onStop(),但沒有殺死又重新啟動了這個activity往湿。
我的demo中少了個onResume()這個函數(shù)妖异。
onResume()這個函數(shù)是發(fā)生在和用戶進(jìn)行相應(yīng)的交互的時候惋戏,通常是在onPause()后會調(diào)用的领追。而onPause()正如這個英文單詞,在這個階段activity已經(jīng)暫停了响逢。
Called when the system is about to start resuming a previous activity.
這個是他官方的調(diào)用時機(jī)绒窑。在這個狀態(tài)下,他是可以回到之前的狀態(tài)或者將activity進(jìn)入到不可見的狀態(tài)舔亭。
在這個以前的狀態(tài)些膨,activity都是no killable,之后便都是yes钦铺。
而進(jìn)行狀態(tài)的某種數(shù)據(jù)保留或者存儲订雾,在onPause中保留執(zhí)行存儲代碼是最合適的如果是必須要在activity快kill的時候。
在下只是一個新手矛洞,如有錯處請指出 謝謝