照例,先写demo
Main
package com.lcl.view;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("MM", "Main onCreate");
// Activity正在被创建;可以做初始化操作 。比如调用setContentView加载界面布局资源,
// 初始化Activity所需数据
}
@Override
protected void onRestart() {
super.onRestart();
Log.i("MM", "Main onRestart");
//Activity重新启动,Activity从不可见到可见,onRestart会被调用
}
@Override
protected void onStart() {
super.onStart();
Log.i("MM", "Main onStart");
//Activity正在被启动;此时,Activity可见,但是还没有出现在前台,无法和用户交互,可理解为用户不可见
}
@Override
protected void onResume() {
super.onResume();
Log.i("MM", "Main onResume");
//Activity已经可见,并且出现在前台并开始活动;与onStart()方法都表示Activity已经可见,
// 区别是onStart()是后台可见,onResume()是前台可见
}
@Override
protected void onPause() {
super.onPause();
Log.i("MM", "Main onPause");
//表示Activity正在停止,正常情况下,紧接着onStop会被执行
}
@Override
protected void onStop() {
super.onStop();
Log.i("MM", "Main onStop");
//Activity即将停止,可以做一些回收但不太耗时操作
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i("MM", "Main onDestroy");
//表示Activity即将被销毁,此时可以做一些回收和资源释放操作
}
public void onClick(View view){
Intent i = new Intent(MainActivity.this,Sec.class);
startActivity(i);
}
}
Sec
package com.lcl.view;
import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
/**
* Created by liuchunliang on 2017/2/21.
*/
public class Sec extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sec);
Log.i("MM", "Sec onCreate");
}
@Override
protected void onRestart() {
super.onRestart();
Log.i("MM", "Sec onRestart");
//Activity重新启动,Activity从不可见到可见,onRestart会被调用
}
@Override
protected void onStart() {
super.onStart();
Log.i("MM", "Sec onStart");
//Activity正在被启动;此时,Activity可见,但是还没有出现在前台,无法和用户交互,可理解为用户不可见
}
@Override
protected void onResume() {
super.onResume();
Log.i("MM", "Sec onResume");
//Activity已经可见,并且出现在前台并开始活动;与onStart()方法都表示Activity已经可见,
// 区别是onStart()是后台可见,onResume()是前台可见
}
@Override
protected void onPause() {
super.onPause();
Log.i("MM", "Sec onPause");
//表示Activity正在停止,正常情况下,紧接着onStop会被执行
}
@Override
protected void onStop() {
super.onStop();
Log.i("MM", "Sec onStop");
//Activity即将停止,可以做一些回收但不太耗时操作
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i("MM", "Sec onDestroy");
//表示Activity即将被销毁,此时可以做一些回收和资源释放操作
}
}
运行 执行周期:
点击跳转:
点击跳转先暂停第一个activity,然后第二个暂停 开启 用户可见 第一个停止 用户不可见
按返回键 执行周期:
Main 先暂停 然后Sec onCreate() onStart() onResume() ,Main onStop().
点击返回按钮:
Sec 中 先暂停 Main中 onRestart() onStart() onResume() Sec中onStop() onDestroy()
生命周期 一个动作响应,需要之前动作暂停 新动作执行后然后旧动作结束操作。