android中Activity的生命周期。
所谓的Activity的生命周期和java中Servlet的生命周期类似。
Activity中有7个方法:
1)onCreate()
2)onStart()
3)onResume()
4)onRestart()
5)onPause()
6)onStop()
7)Destroy()
1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
测试生命周期,第一个页面中
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.tv_start).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, ActivityB.class));
}
});
Log.i("--Main--", "---------MainActivity------onCreate创建---------");
}
@Override
protected void onStart() {
super.onStart();
Log.i("--Main--", "---------MainActivity------onStart开始---------");
}
@Override
protected void onResume() {
super.onResume();
Log.i("--Main--", "---------MainActivity------onResume获取焦点---------");
}
@Override
protected void onPause() {
super.onPause();
Log.i("--Main--", "---------MainActivity------onPause暂停---------");
}
@Override
protected void onStop() {
super.onStop();
Log.i("--Main--", "---------MainActivity------onStop停止---------");
}
@Override
protected void onRestart() {
super.onRestart();
Log.i("--Main--", "---------MainActivity------onRestart重新开始---------");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i("--Main--", "---------MainActivity------onDestroy销毁---------");
}
}
第二个页面:
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
public class ActivityB extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_b);
Log.i("--Main--", "---------ActivityB------onCreate---------");
}
@Override
protected void onStart() {
super.onStart();
Log.i("--Main--", "---------ActivityB------onStart---------");
}
@Override
protected void onResume() {
super.onResume();
Log.i("--Main--", "---------ActivityB------onResume---------");
}
@Override
protected void onPause() {
super.onPause();
Log.i("--Main--", "---------ActivityB------onPause---------");
}
@Override
protected void onStop() {
super.onStop();
Log.i("--Main--", "---------ActivityB------onStop---------");
}
@Override
protected void onRestart() {
super.onRestart();
Log.i("--Main--", "---------ActivityB------onRestart---------");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i("--Main--", "---------ActivityB------onDestroy---------");
}
}
如下是 刚打开主页面的时候
04-11 11:02:14.620: I/BrowserProcessMain(660): Initializing chromium process, renderers=0
04-11 11:02:37.460: I/--Main--(1159): ---------MainActivity------onCreate创建---------
04-11 11:02:37.460: I/--Main--(1159): ---------MainActivity------onStart开始---------
04-11 11:02:37.460: I/--Main--(1159): ---------MainActivity------onResume获取焦点---------
跳转到第二页面:
04-11 11:04:17.140: I/--Main--(1159): ---------MainActivity------onPause暂停---------
04-11 11:04:17.150: I/--Main--(1159): ---------ActivityB------onCreate---------
04-11 11:04:17.150: I/--Main--(1159): ---------ActivityB------onStart---------
04-11 11:04:17.150: I/--Main--(1159): ---------ActivityB------onResume---------
04-11 11:04:17.560: I/--Main--(1159): ---------MainActivity------onStop停止---------
关闭第二页面:
04-11 11:05:08.730: I/--Main--(1159): ---------ActivityB------onPause---------
04-11 11:05:08.730: I/--Main--(1159): ---------MainActivity------onRestart重新开始---------
04-11 11:05:08.730: I/--Main--(1159): ---------MainActivity------onStart开始---------
04-11 11:05:08.730: I/--Main--(1159): ---------MainActivity------onResume获取焦点---------
04-11 11:05:09.150: I/--Main--(1159): ---------ActivityB------onStop---------
04-11 11:05:09.150: I/--Main--(1159): ---------ActivityB------onDestroy---------
如有不理解可以评论!谢谢!