2016

这篇文章送给那些刚刚开始接触Android的同学

想要把Android学好的话,那么了解Android的整个运行机构是必不可少的。Android的生命周期是每个APP都拥有的一个运行周期。

先来看一张官方给的生命周期图

Android Handler 生命周期 android的生命周期_android

相信对于初接触Android的同学来说,看见这个图肯定是两眼茫然的。不过别急,因为我第一次接触android的时候也是看这个图,也是根本看不懂。对于一个程序员来说,学好程序的最好途径就是多敲代码。这几天看见了一句话,要想成为一个领域的专家,你得在这个领域学习1W+小时才可以称之为专家。所以不要想着一下就懂,慢慢学习,一天写100行代码,久而久之,你将会感谢这个不断努力的自己。


我们新建一个Android的程序,编译器会帮我们自动生成很多必要的文件。具体生成的文件看下图。(eclipse创建的)


刚开始学,我们可以不认识别的文件所表示的意义,但是有两个文件所表示的意义我们还是要知道的。

其中一个是在src/com.example.demo包下的MainActivity.java文件。学过java的同学应该都知道,这是一个java的类。在这个类中,编译器已经自动帮你继承了Activity的类。

在这个类中,我们可以重写以下方法

protected void onCreate(Bundle savedInstanceState);  
       protected void onStart();     
       protected void onRestart();  
       protected void onResume();  
       protected void onPause();   
       protected void onStop();  
       protected void onDestroy();

我们可以在MainActivity.java文件中写以下代码来自己测试Android的生命周期



public class MainActivity extends Activity {  
    private static final String TAG = "Demo";  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        Log.e(TAG, "onCreate");  
    }  
    @Override  
    protected void onStart() {  
        super.onStart();  
        Log.e(TAG, "onStart");  
    }  
    @Override  
    protected void onRestart() {  
        super.onRestart();  
        Log.e(TAG, "onRestart");  
    }  
    @Override  
    protected void onResume() {  
        super.onResume();  
        Log.e(TAG, "onResume");  
    }  
    @Override  
    protected void onPause() {  
        super.onPause();  
        Log.e(TAG, "onPause");  
    }  
    @Override  
    protected void onStop() {  
        super.onStop();  
        Log.e(TAG, "onStop");  
    }  
    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        Log.e(TAG, "onDestroy");  
    }  
}

我们运行程序,我们会发现

当我们什么都不去做的时候,只让程序正常跑起来,我们会在控制台里面的日志输出中看见


这说明在我们进入程序的第一时间,android先后执行onCreate->onStart->onResume这三个方法

当我们按了BACK键之后,我们会在控制台看见


这就是当我们按了BACK键的生命周期了。

接下来我们进入程序,在按HOME键,我们会发现回调的方法发生变化,变成了


而在这时我们再次启动APP,会发现调用了

在这里我们需要注意一下,当按BACK键和按HOME键返回桌面,再次进入APP所调用的方法是不同的。

最后再次提醒看博客的各位,光看是没有用的,大家都去动手实验一下吧!!

2016/11/3 20.54