第二章 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 方法中释放资源是最优解!!!

发布了5 篇原创文章 · 获赞 6 · 访问量 774

猜你喜欢

转载自blog.csdn.net/huoruohe/article/details/103006004