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键
旋转屏幕的生命周期
未完待续(仍是夜晚写吧,上午真的造不出来啊)