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 方法中釋放資源是最優解!!!