安卓学习笔记----浅析安卓生命周期

1. 简述

安卓的生命周期有六个,分别为:onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(),每一个Activity都有这些生命周期,通过这些生命周期,Activity在不存在,停止,暂停和运行之间转换,如下图:
在这里插入图片描述

2. 通过打印日志信息更深了解生命周期

如果对安卓Logcat工具或是日志打印不了解,请戳此链接

用到的代码
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivityLog";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG,"onCreate()方法被调用");
        setContentView(R.layout.activity_main);
    }

    @Override
    public void onStart(){
        super.onStart();
        Log.d(TAG,"onStart()方法被调用");
    }

    @Override
    public void onResume(){
        super.onResume();
        Log.d(TAG,"onResume()方法被调用");
    }

    @Override
    public void onPause(){
        super.onPause();
        Log.d(TAG,"onPause()方法被调用");
    }

    @Override
    public void onStop(){
        super.onStop();
        Log.d(TAG,"onStop()方法被调用");
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.d(TAG, "onDestroy()方法被调用");
    }
}
第一步:第一次打开应用

运行程序,第一次打开应用日志显示如下图,可见三个生命周期方法被调用,分别为:onCreate(), onStart(), onResume(),通过上图我们得知,一个Activity第一次打开经过了:不存在->停止->暂停->运行阶段
在这里插入图片描述

第二步:按下home键

日志打印如下,可见两个生命周期方法被调用,分别为 onPause(), onStop(),此时,Activity实例并没有被消灭,而是存在内存之中,Activity的状态也来到了停止
在这里插入图片描述

第三步:再次打开应用

日志打印如图,可见 onStart(), **onResume()**方法再次被调用,Activity处于运行状态
在这里插入图片描述

第四步:按下返回键

日志打印如下,可见调用了onPause(), onStop(), **onDestroy()**三个生命周期方法,此时应用退出,Activity又回到了不存在的状态,内存中已经没有了activity实例
在这里插入图片描述

3. 注意

当安卓应用处于运行状态屏幕翻转之后,依此进行的操作是onPause(), onStop(), onDestroy()onCreate(), onStart(), onResume(),即,屏幕翻转之后的Activity实例要先被安卓系统消灭,然后再重新创建,所以,像我一样的安卓小萌新开发的时候注意屏幕翻转的信息保存。

发布了34 篇原创文章 · 获赞 65 · 访问量 3716

猜你喜欢

转载自blog.csdn.net/baidu_41860619/article/details/104400272