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---------

如有不理解可以评论!谢谢!

猜你喜欢

转载自blog.csdn.net/zeyu_rensheng/article/details/79892600