重识Activity

安卓四大组件之一的Activity,从我最初开始写安卓代码的时候就会用了,也初步了解了一些Activity的生命周期有关的知识,但是总是觉得了解的不够透彻,似懂非懂。

今天又从新系统的复习了一下关于Activity的内容,再这里做个总结。

下图是Google官方给出的Activity生命周期图:

重识Activity_第1张图片
Activity生命周期

从Api中我们可以知道,Activity其实是继承至ApplicationContext类,我们写个Demo,从写一下它的方法。

public class FirstActivity extends AppCompatActivity {

    private static final String TAG = "FirstActivity";

    //Create    创建
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);

        Log.i(TAG, "start onCreate~~~");
    }

    //Start    开始
    @Override
    protected void onStart() {
        super.onStart();
        Log.i(TAG, "start onStart~~~");
    }

    //Restart    重新启动
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i(TAG, "start onRestart~~~");
    }

    //Resume  重新占用
    @Override
    protected void onResume() {
        super.onResume();
        Log.i(TAG, "start onResume~~~");
    }

    //onPause    暂停
    @Override
    protected void onPause() {
        super.onPause();
        Log.i(TAG, "start onPause~~~");
    }

    //onStop    停止
    @Override
    protected void onStop() {
        super.onStop();
        Log.i(TAG, "start onStop~~~");
    }

    //onDestroy     销毁
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i(TAG, "start onDestroy~~~");
    }

}

运行上面的代码会发现,启动Activity首先依次调用:
onCreate()->onStart()->onResume 方法

重识Activity_第2张图片
Log1.png

点击back按钮后调用:
onPause()->onStop()->onDestory 方法

重识Activity_第3张图片
Log2.png

点击Home键后调用:
onPause()->onStop() 方法

重识Activity_第4张图片
Log3.png

横竖屏切换后:
onPause()->onStop()->onDestroy()->onCreate()->onStart()->onResume~

重识Activity_第5张图片
Log6.png

以上是单个Activity的生命,那么两个Activity相互跳转的时候生命周期是什么样的呢?

下一篇:
重识Activity2

你可能感兴趣的:(重识Activity)