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