第二章 Activity(二)——生命週期 生老病死(一)

1.Acitivity生命週期

1.1生命週期圖

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章