android的生命周期如下:
(1)onCreate:表示Activity正在被创建,是android生命周期的第一个调用方法。
(2)onRestart:表示Activity正在重新启动,是Activity由不可见状态变为可见状态。当用户由当前Activity返回桌面或者重新创建新的Activity,重新返回当前Activity会调用onRestart。
(3)onStart:表示Activity正在启动,Activity已近可见了,但是还没有出现在前台。
(4)onResume:表示Activity已经可见了,并且出现在前台并且已经开始活动。
(5)onPause:表示Activity正在停止,这时可以在这里处理一些事情,比如数据存储,动画的停止等等,但是不能太耗时,不然会影响下一个Activity的显示。
(6)onStop:表示Activity即将停止,可以做一些稍微重量级的回收工作,但是也一样不能做耗时工作。
(7)onDestroy:表示Activity即将被销毁,这是Activity生命周期的最后一个回调方法。这里主要做一些资源的释放。
补充点:
(1)当Activity返回桌面或者启动新的Activity,回调如下:onPause->onStop,当新的Activity是透明主题的,当前Activity的onStop方法就不会被回调。
(2)从整个生命周期来说,onCreate和onDestroy是配对的,表示创建和销毁。onStart和onStop是配对的,onResume和onPause是配对的。
问题:
(1)onStart和onResume、onPause和onStop有什么区别?
答:onStart和onStop是Activity是否可见的角度来回调的,而onResume和onPause是从是否位于前台的角度来回调的。
(2)假设当前Activity A,如果这时用户打开一个新的Activity B,那么B的onResume和A的onPause哪个先执行?
答:先调用A的onPause再调用B的onCreate。
(3)屏幕旋转时onSaveInstanceState和onPause哪一个先调用?
答:不一定,但一定在onStop之后。