Activity启动程序可分为四种情况
(1)在应用程序中执行startActivity()或startActivityForResult()
(2)从桌面点击启动
(3)按返回键自动启动上一个界面
(4)按home键,从应用列表选取一个
其实activity的启动都离不开栈,栈可以简单理解为一个存放activity的容器
第一种情况,桌面可以理解成一个叫Launcher的应用,我们的应用就是安装在Launcher里,Launcher显示出我们的应用,现在我们点击我们的应用会出现一连串流程,其中参与的类有Launcher,Activity,ActivityManagerService,ActivityThread等,这些类给应用创建一个进程,由于我们在清单文件指定了默认开启的类,所以 接下来就会执行activity的生命周期
第二种情况,在应用程序中由一个activity启动量一个activity这就要看launchMode的设置了,
启动四种模式:standard、singletop、singletask、singleinstance,查考点击打开链接
singletop singletask 执行的话生命周期onNewIntent()---->onResart()------>onStart()----->onResume(),所以要拿intent取数据 不能在oncreate里了。
第三种情况,当按下返回键时,我们知道执行了finish()的方法,其实ActivityManagerService,ActivityStack也执行了相应的方法,然后从队列中把当前activity销毁,resume下面的activity
第四种情况,就是通过phonewindowmanager这个类,将选择的应用进程置前
本文详细介绍了Android中Activity的四种启动方式及其背后的工作原理。包括从桌面启动应用、在一个应用内启动另一个Activity、按返回键自动启动上一个界面及通过应用列表选择启动。深入探讨了不同启动模式下Activity生命周期的变化。
6569

被折叠的 条评论
为什么被折叠?



