首页 > os > android > > 正文

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

发布人:zhoulujun@live.cn    点击:

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/