Activity的生命周期,相信这个内容在网上已经有N个人写过了,用的也几乎是相同的例子,没关系,大家好才是真的好,都用那个例子才说明那个例子典型
先罗列一下,在Activity生命周期中,会执行的7个方法
onCreate(Bundle savedStatus):创建Activity时被回调
onStart():启动Activity时被回调
onRestart():重新启动Activity 时被回调
onResume():恢复Activity时被回调
onPause:暂停Activity时被回调
onStop:停止Activity时被回调
onDestroy:销毁Activity时被回调
下面就是那个例子,打印出7个方法在生命周期中的执行过程
package WangLi.Activity.Lifecycle; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class Lifecycle extends Activity { final String TAG = "--WangLi's Program--"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //输出日志 Log.d(TAG,"------onCreate------"); Button bn = (Button)findViewById(R.id.bn); bn.setOnClickListener(new OnClickListener(){ public void onClick(View source) { //结束该Activity Lifecycle.this.finish(); } }); } public void onStart() { super.onStart(); Log.d(TAG,"------onStart------"); } public void onRestart() { super.onRestart(); Log.d(TAG,"------onRestart------"); } public void onResume() { super.onResume(); Log.d(TAG,"------onResume------"); } public void onPause() { super.onPause(); Log.d(TAG,"------onPause------"); } public void onStop() { super.onStop(); Log.d(TAG,"------onStop------"); } public void onDestroy() { super.onDestroy(); Log.d(TAG,"------onDestroy------"); } }首先启动应用程序,日志打印如下
按下模拟器 键,返回系统桌面,这时Acitvity失去焦点,不可见,但并未被销毁,进入了停止状态
这时在模拟器窗口重新找到该程序的图标,再次启动它,由于之前并未销毁,所以这是一个重新唤醒的过程
这时再点击界面上那个按钮来关闭程序
这之后是销毁的过程所回调的方法
这个周期的流程图也是网上传遍了的,过程比较简单