Activity是Android的核心类,全名是android.app.Activity. 每一个Activity提供了一个可视化的区域。这个区域可以放置各种Android组件,例如按钮、图像、文本框等。
那么这样一个Activity,从启动应用程序到关闭应用程序,它到底是怎样动作,或者是怎样开启和关闭的呢?生命周期到底是怎样的呢?下面看个例子
新建一个安卓工程,修改MainActivity.java
package com.mmc.Activitycycle;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("onCreate", "onCreate Method is executed");
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.d("onDestroy", "onDestroy Method is executed");
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.d("onPause", "onPause Method is executed");
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
Log.d("onRestart", "onRestart Method is executed");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.d("onResume", "onResume Method is executed");
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.d("onStart", "onStart Method is executed");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.d("onStop", "onStop Method is executed");
}
}
在Android应用程序中不能使用System.out.println
然后打开eclipse里面的Logcat,完成下面的步骤
1)启动应用程序‘;
2)按接听按钮,进入通话记录界面,再返回;
3)关闭应用程序;
再点一次2)里第二次按的按钮即可退出。
这时,在LogCat里可以看到
可以看到Activity的三个生命周期,
onResume ---- onPause 焦点生命周期
onRestart ----....---- onStop 可视生命周期
onCreate --- ....--- onDestroy 整体生命周期
通过仿真,可以看出在什么样的情况下是在执行什么样的方法。
刚启动应用程序的时候,是执行三个方法。onCreate onStart onResume
而当按了接听按钮之后,启动另外一个Activity时,那么就要先停止现在的Activity,所以按了接听按钮后,
执行两个方法 onPause onStop
当退出接听Activity,回到应用程序的时候,执行的是 onRestart onStart onResume
当再按下退出应用程序的时候,就应该是毁灭,onPause onStop onDestroy