最近在知乎上看到一个很基础的问题:
如何详解 Activity 的生命周期?
提问者的情况:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zalppbw7-1608543741156)(//upload-images.jianshu.io/upload_images/16595031-c0cc086386acb172.png?imageMogr2/auto-orient/strip|imageView2/2/w/732/format/webp)]
本身在知乎上问这么基础的问题再加上说我们国内的开发水平比别人的低,也难怪被所有人喷了。。。
接着,回到正题,关于Activity生命周期,对于网上也有大量博客讲到这个问题,接下来就给大家讲讲Activity的知识:
1.Activity生命周期
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z0Vq74RB-1608543741159)(//upload-images.jianshu.io/upload_images/16595031-2944a47b0c9ea753.png?imageMogr2/auto-orient/strip|imageView2/2/w/691/format/webp)]
这幅图比较清晰,就不细说,下面我就说说图上没有的吧
(一)Activity与进程的关系
作为应用开发者,接触更多的是Activity/Service/Broadcast/ContentProvider这四大组件以及线程,往往对于进程没有很多的概念,这是google有意为之,除非在AndroidManifest.xml文件中配置android:process属性,否则一般情况下一个App是运行在一个进程中。
在Android系统启动的过程中,便创建好Android上层应用的环境,即Android Runtime,一切的应用都是运行在Android Runtime这个层面之上。而进程对于App来说是完全透明的,在Activity进入生命周期之前,会先创建好进程,可以把进程理解为Activity的载体。一个进程中可以有多个Activity,而一个Activity必须且只能存在一个进程里;进程里可以不存在任何Activity,而Activity不能离开进程而孤立存在。
(二)home键、back键、电源键、进程管理器
一般情况下
按下home键:前台Activity依次回调onPause, onStop;
按下back键:前台Activity依次回调onPause, onStop, onDestroy;
按下电源键:前台Activity依次onPause, onStop;
对于进程管理器,采用的force-stop的方式ÿ