Android開發最吸引人的魅力在於隨隨便便拖幾個控件,跑一下代碼,就能看見在頁面上面顯示的效果。其中Activity的強大就體現出來了。樓主之前作Web開發,被2000多行的Js代碼弄的頭昏眼花。後來偶爾一次機會,看見Android拖控件到顯示的視頻,被吸引着入了門,走上了Android的不歸路。作Android開發的這幾年,本着能抄代碼就不本身動手的精神,走了很多彎路。如今配合多個學習書籍,總結經驗,理解原理性的東西,方便下次抄襲(^_^)。html
廢話很少說,上Activity的生命週期圖(這個在面試的時候常常會被問到哎,真不知道有什麼能夠問的)android
圖片原地址(http://cs.szpt.edu.cn/android/guide/components/activities.html)面試
Activity從建立到銷燬,正常通過的生命流程就是onCreate->onStart->onResume->onPause->onStop->onStop->onDestroy。app
可是筒子們在開發的時候,偶會會見到不走尋常路的。ide
onCreate:Activity正在被建立,是生命週期的第一個方法,通常初始化的工做都是在這裏完成的,好比setContentView加載layout、getIntent獲取上個頁面傳遞過來的數據、findViewById、setListener等學習
onRestart:Activity在重啓。通常狀況下當應用程序從後臺程序變成前臺程序的時候,會執行onRestart方法。測試
onStart:Activity正在啓動,Activity處在系統後臺可見,用戶還無法操做界面上的元素。ui
onResume:Activity可見了,而且出如今前臺。與onStart的區別在於:onStart的時候,Activity處在後臺,onResume的時候Activity才顯示到前臺。spa
onPause:Activity處在暫停狀態,用戶無法操做。code
onStop:Activity即將中止,能夠作微量的回收操做,但不可以太耗時。
onDestroy:Activity即將銷燬,能夠作回收工做和資源的釋放。通常把註冊的廣播接受者取消註冊unregisterReceiver、handler.removeMessages、Timer的cancel等。
package com.chunjiangchao.demo; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class MainActivity extends Activity { private static final String tag = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i(tag, "onCreate"); } @Override protected void onStart() { super.onStart(); Log.i(tag, "onStart"); } @Override protected void onRestart() { super.onRestart(); Log.i(tag, "onRestart"); } @Override protected void onResume() { super.onResume(); Log.i(tag, "onResume"); } @Override protected void onPause() { super.onPause(); Log.i(tag, "onPause"); } @Override protected void onStop() { super.onStop(); Log.i(tag, "onStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.i(tag, "onDestroy"); } }
AndroidManifest.xml中的配置
<activity android:name="com.chunjiangchao.demo.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
正常流程測試:
啓動Activity,而後點擊後退鍵銷燬,生命週期以下:
啓動Activity後,點擊Home鍵
旋轉屏幕的生命週期
未完待續(仍是夜晚寫吧,上午真的造不出來啊)