2016
这篇文章送给那些刚刚开始接触Android的同学
想要把Android学好的话,那么了解Android的整个运行机构是必不可少的。Android的生命周期是每个APP都拥有的一个运行周期。
先来看一张官方给的生命周期图
相信对于初接触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