Android之一个Activity的生命周期

总想整理一下知识,可总是因为各种原因搁置。说到底还是懒,但是呢整理的这个心又不死。  
所以我想到的解决办法就是,从最简单的知识开始整理记录,如果习惯养成了,那么复杂的  
也就没那么复杂了。希望能有所收获!

简单,到底有多简单呢,就是创建了一个项目,只有一个Activity,重写了它的生命周期方  
法,就打开与关闭应用,看都走了哪些生命周期方法。如果你看到了这里,觉得太简单了,轻  
喷,我只为自己整理思路。

代码

package com.itlong.myactivity;

import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private Button mBtn;

    @Override protected void onCreate (Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main);
        mBtn = findViewById (R.id.btn);
        mBtn.setOnClickListener (this);
        LogUtils.i ("onCreate");
    }

    @Override protected void onStart () {
        super.onStart ();
        LogUtils.i ("onStart");
    }

    @Override protected void onResume () {
        super.onResume ();
        LogUtils.i ("onResume");
    }

    @Override protected void onRestart () {
        super.onRestart ();
        LogUtils.i ("onRestart");
    }

    @Override protected void onPause () {
        super.onPause ();
        LogUtils.i ("onPause");
    }

    @Override protected void onStop () {
        super.onStop ();
        LogUtils.i ("onStop");
    }

    @Override protected void onDestroy () {
        super.onDestroy ();
        LogUtils.i ("onDestroy");
    }

    /*
     * <des>
     *     异常退出时保存数据使用
     * </des>
     * @Author :shuangyue
     * @Date :2018/6/28
     * @Time :21:14
     */
    @Override protected void onSaveInstanceState (Bundle outState) {
        LogUtils.i ("onSaveInstanceState");
        super.onSaveInstanceState (outState);
    }

    /*
     * <des>
     *     异常退出时,可以在该方法中恢复数据
     * </des>
     * @Author :shuangyue
     * @Date :2018/6/28
     * @Time :21:27
     */
    @Override protected void onRestoreInstanceState (Bundle savedInstanceState) {
        LogUtils.i ("onRestoreInstanceState");
        super.onRestoreInstanceState (savedInstanceState);
    }


    /*
     * <des>
     *     配置信息发生改变时的回调
     * </des>
     * @Author :shuangyue
     * @Date :2018/6/28
     * @Time :21:14
     */
    @Override public void onConfigurationChanged (Configuration newConfig) {
        LogUtils.i ("onConfigurationChanged");
        super.onConfigurationChanged (newConfig);
    }

    /*
     * <des>
     *     当启动模式为 单一顶部模式、单一任务默认,或者单一实例模式时,
     *     再次启动该Activity时,不会走生命周期方法,而走该方法;
     *     产生疑问?会不会走onStart与onResume方法呢?
     * </des>
     * @Author :shuangyue
     * @Date :2018/6/28
     * @Time :21:15
     */
    @Override protected void onNewIntent (Intent intent) {
        LogUtils.i ("onNewIntent");
        super.onNewIntent (intent);
    }



    @Override public void onClick (View v) {
        switch (v.getId ()){
            case R.id.btn:
                finish ();
                break;
        }
    }

}

打开应用
打开应用截图
关闭应用
这里写图片描述
总结

当只有一个Activity时,
打开应用的生命周期方法是:
onCreate()
onStart()
onResume()
关闭应用的生命周期方法是
onPause()
onStop()
onDestroy()
onCreate()
Activity第一次被创建时调用,通常在这个方法中会完成,加载布局,初始化布局,设置事件监听。
onStart()
Activity可见时被调用,可以在该方法中,设置界面显示内容以及恢复数据等操作。
onResume()
Activity可操作时被调用。
onPause()
Activity不可操作时被调用。
onStop()
Activity不可见时被调用,可在该方法中,持久化数据。
onDestroy()
Activity销毁时被调用,可在该方法中释放以前申请的资源,防止内存溢出。

猜你喜欢

转载自blog.csdn.net/yangshuangyue/article/details/80904335