作为Android的四大天王,Activity出场率可谓是最高的,如何正确理解Activity的生命周期对于我们编程十分有帮助。
首先Activity有如下7个常用方法,onCreate(),onStart(),onResume(),onPause() ,onStop(),onReStart(),onDestroy()。
不同Activity在启动关闭的过程中会调用7个中的某几个方法。
假设此时我有三个Activity ,名称分别叫FirstActivity,SecondActivity,ThirdActivity。启动顺序开始->FirstActivity->SecondActivity->ThirdActivity
1.当启动App,出现第一个FirstActivity时,会依次调用
FirstActivity的onCreate()->FirstActivity的onStart()->FirstActivity的onResume()
2.FirstActivity->SecondActivity时,会依次调用
FirstActivity的onPause()->SecondActivity的onCreate()->SecondActivity的onStart()->SecondActivity的onResume()->FirstActivity的onStop()
3.SecondActivity->ThirdActivity时,会依次调用
SecondActivity的onPause()->ThirdActivity的onCreate()->ThirdActivity的onStart()->ThirdActivity的onResume()->SecondActivity的onStop()
4.ThirdActivity->SecondActivity,会依次调用
ThirdActivity的onPause()->SecondActivity的onReStart()->SecondActivity的onStart()->SecondActivity的onResume()->ThirdActivity的onStop()->ThirdActivity的onDestroy()
5.SecondActivity->FirstActivity,会依次调用
SecondActivity的onPause()->FirstActivity的onReStart()->FirstActivity的onStart()->FirstActivity的onResume()->SecondActivity的onStop()->SecondActivity的onDestroy()
6.FirstActivity->退出,会依次调用
FirstActivity的onPause()->FirstActivity的onStop()->FirstActivity的onDestroy()
从上面的过程可以看到,多个Activity互相转换时基本是由几个固定方法转换,而且每个Activity的OnCreate(),OnDestroy()在整个生命周期中只会被调用一次。