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失去焦点,不可见,但并未被销毁,进入了停止状态
这时在模拟器窗口重新找到该程序的图标,再次启动它,由于之前并未销毁,所以这是一个重新唤醒的过程
这时再点击界面上那个按钮来关闭程序
这之后是销毁的过程所回调的方法
这个周期的流程图也是网上传遍了的,过程比较简单