在《Android开发艺术探索》一书中学习到的知识。之前没有特别在意两者的不同。根据书中的内容做一个简单的总结。
onStart和onStop是从Activity是否可见的角度来回调的,onResume和onPause是从Activity是否位于前台来回调。
理解这句话,首先要理解“前台”于“可见”的区别。准确的说,应该是“前台进程”与“可见进程”的区别。前台进行是与用户正在进行交互的进程,可见进程是界面被用户看见,还不能进行交互的状态。这就是为什么Activity的生命周期onStart在onResume之前。在onStart时,还不能进行交互。onResume时才可以进行交互。假如当前已打开A Activity,此时由A Activity转到B Activity时,生命周期是这样的:
A onPause
B onCreate
B onStart
B onResume
A onStop
这个过程就是A Activity由前台转为后台的过程,A的onStop在B的onResume之后执行。之前遇到过一个问题,就是ToolBar的setTitle()方法在onResume()方法中使用才有效果,应用就是这个原因。