• home > OS > Android > Develop >

    activety生命周期与开车的瞎想!一张图弄懂Activety

    Author:[email protected] Date:

    Activety的简单记忆方法,可以类比你去开车……(平时只会用,完全一口气答上来,就母鸡了…… 没有那么难的……

    面试官问:Activety的生命周期是什么?

    脑海底两万里深处有印象
    于是,弱弱地回答,有印象……

    然后回顾下……

    Activity其实是继承了ApplicationContext这个类,我们可以重写以下方法,如下代码:

    view plaincopy to clipboardprint?
    public class Activity extends ApplicationContext {  
           protected void onCreate(Bundle savedInstanceState);  
           protected void onStart();     
           protected void onRestart();  
           protected void onResume();  
           protected void onPause();   
           protected void onStop();  
           protected void onDestroy();  
       }

     为了便于大家更好的理解,我简单的写了一个Demo,不明白Activity周期的朋友们,可以亲手实践一下,大家按照我的步骤来。

      第一步:新建一个Android工程,我这里命名为ActivityDemo.

      第二步:修改ActivityDemo.java(我这里重新写了以上的七种方法,主要用Log打印),代码如下:

    package com.tutor.activitydemo;  
    import android.app.Activity;  
    import android.os.Bundle;  
    import android.util.Log;  
    public class ActivityDemo extends Activity {  
        private static final String TAG = "ActivityDemo";  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
            Log.e(TAG, "start onCreate~~~");  
        }  
        @Override  
        protected void onStart() {  
            super.onStart();  
            Log.e(TAG, "start onStart~~~");  
        }  
        @Override  
        protected void onRestart() {  
            super.onRestart();  
            Log.e(TAG, "start onRestart~~~");  
        }  
        @Override  
        protected void onResume() {  
            super.onResume();  
            Log.e(TAG, "start onResume~~~");  
        }  
        @Override  
        protected void onPause() {  
            super.onPause();  
            Log.e(TAG, "start onPause~~~");  
        }  
        @Override  
        protected void onStop() {  
            super.onStop();  
            Log.e(TAG, "start onStop~~~");  
        }  
        @Override  
        protected void onDestroy() {  
            super.onDestroy();  
            Log.e(TAG, "start onDestroy~~~");  
        }  
    }

    第三步:运行上述工程,效果图如下(没什么特别的):

     核心在Logcat视窗里,如果你还不会用Logcat你可以看一下我的这篇文章 Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e),我们打开应用时先后执行了onCreate()->onStart()->onResume三个方法,看一下LogCat视窗如下:

    想想开车:首先要有车时把:onCreate(比如按下home键,去看快播……

    开车首先插上钥匙,点火……start……

    然后挂档,平稳加速……onResume

    如果前面 路面有100块钱……或者看到苍老师,停下来观望下:

    停车,然后踩刹车……onPause()->onStop()

    然后再次启动

    onRestart->onStart-onResume

    一不小心,到家了……(比如按下home键……

    减速 停车 Pause ,拔出钥匙  Stop  ,走人,……onDestory

    onPause()->onStop()->onDestory()

    但是,这个比方还是不太好……

    等我下次再想个好的哈……

    参考文章:http://kb.cnblogs.com/page/70125/



    转载本站文章《activety生命周期与开车的瞎想!一张图弄懂Activety》,
    请注明出处:https://www.zhoulujun.cn/html/OS/Android/AndroidDevelop/2016_0418_7774.html