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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值