一、Activity 的生命周期
1、创建一个 Activity 用日志打印它的周期状态
package com.example.demo_1;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建
Log.e(TAG, "onCreate");
}
@Override
protected void onStart() {
super.onStart();
//启动
Log.e(TAG, "onStart");
}
@Override
protected void onResume() {
super.onResume();
//继续
Log.e(TAG, "onResume");
}
@Override
protected void onRestart() {
super.onRestart();
//重新启动
Log.e(TAG, "onRestart");
}
@Override
protected void onPause() {
super.onPause();
//暂停
Log.e(TAG, "onPause");
}
@Override
protected void onStop() {
super.onStop();
//停止
Log.e(TAG, "onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
//销毁
Log.e(TAG, "onDestroy");
}
}
二、在 Activity 跳转过程中的生命周期
1、先创建一个 Activity 名为 AAty。在该 Activity 中创建一个按钮,按钮事件为跳转另一个 Activity
package com.example.demo_1;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
public class AAty extends Activity {
private static final String TAG = "AAty";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建
Log.e(TAG, "A onCreate");
findViewById(R.id.btnStartBAty).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(AAty.this,BAty.class));
}
});
}
@Override
protected void onStart() {
super.onStart();
//启动
Log.e(TAG, "A onStart");
}
@Override
protected void onResume() {
super.onResume();
//继续
Log.e(TAG, "A onResume");
}
@Override
protected void onRestart() {
super.onRestart();
//重新启动
Log.e(TAG, "A onRestart");
}
@Override
protected void onPause() {
super.onPause();
//暂停
Log.e(TAG, "A onPause");
}
@Override
protected void onStop() {
super.onStop();
//停止
Log.e(TAG, "A onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
//销毁
Log.e(TAG, "A onDestroy");
}
}
2、创建另一个 Activity 名为 BAty。在该 Activity 中创建一个按钮,按钮事件为返回
package com.example.demo_1;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
public class BAty extends Activity {
private static final String TAG = "BAty";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建
Log.e(TAG, "B onCreate");
findViewById(R.id.btnBack).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
@Override
protected void onStart() {
super.onStart();
//启动
Log.e(TAG, "B onStart");
}
@Override
protected void onResume() {
super.onResume();
//继续
Log.e(TAG, "B onResume");
}
@Override
protected void onRestart() {
super.onRestart();
//重新启动
Log.e(TAG, "B onRestart");
}
@Override
protected void onPause() {
super.onPause();
//暂停
Log.e(TAG, "B onPause");
}
@Override
protected void onStop() {
super.onStop();
//停止
Log.e(TAG, "B onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
//销毁
Log.e(TAG, "B onDestroy");
}
}
3、打印后台日志查看生命周
⑴、跳转前和跳转后AAty的生命周期
⑵、跳转后和回退后BAty的生命周期