Activity启动过程的简单理解

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这个类,将选择的应用进程置前

 

你可能感兴趣的:(Activity启动过程的简单理解)