1.Acitivity生命周期
1.1生命周期图
Tip: on在英文语法中表示时间状语,当…时候
package com.field.activitydemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
/**
* 记录activity的 生命周期(生老病死) 模拟汽车的生命周期
*/
public class LifeActivity extends AppCompatActivity {
private static final String TAG = "LifeActivity";//tip 输入"logt" 会快速创建TAG
/**
* 不可见 创建时 bind view 初始化 不要耗时操作!!
* The activity is being created.
* @param savedInstanceState
* ---->汽车插入钥匙时调用 ---没有启动
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_life);
Log.d(TAG, "onCreate: ");
}
/**
* 不可见
* The activity is about to become visible.
* ---->汽车发动机 点火时候调用 ---没有启动
*/
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "onStart: ");
}
/**
* onstop--> onRestart
* ---->汽车由熄火状态 重新点火发动时调用
*/
@Override
protected void onRestart() {
super.onRestart();
}
/**
* 可见 获取焦点 可以与用户交互 不会被回收
* The activity has become visible (it is now "resumed").
* --->汽车踩油门行使时 调用
*/
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume: ");
}
/**
* 可见 失去焦点 不可以和用户交互 当内存不足时候会回收 tip:当当前界面弹出Dialog的时候 该生命周期也 会被调用
* 所以在此保存数据是最保险的
* Another activity is taking focus (this activity is about to be "paused").
* ---->汽车刹车时候调用 :比如遇到红灯 或者堵车
*/
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "onPause: ");
}
/**
* 不可见 内存不足的时候会销毁
* The activity is no longer visible (it is now "stopped")
* 汽车熄火的时候调用
*/
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "onStop: ");
}
/**
* 不可见 销毁 在这里记住资源释放 防止内存溢出
* The activity is about to be destroyed.
* 汽车拔掉钥匙时候调用
*/
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy: ");
}
}
TIP: 在pause和 stop 方法中释放资源是最优解!!!