Activity的四种启动模式

Android Activity启动模式解析
本文详细介绍了Android中Activity的四种启动模式:standard、singleTop、singleTask和singleInstance。每种模式的特点及应用场景都有详尽的说明,帮助开发者更好地理解和使用这些模式。

standard 默认的模式

就是那种你可以一直创建他的实例例如你创建了Activity a之后再startActivity a,还是会创建一个一模一样的,就和平常的使用一个样子

singleTop

这种模式是 在创建了Activlty a 之后再创建Activity a的时候 就不会创建成功,而是会调用你第一个创建的Activyt a里面的getNewIntent方法。。。但是要注意的是你的Activity a这时候在栈顶的时候再创建Activity a才会不重复创建,在栈顶的意思就是你当前这个页面就是Activity a,如果你在a的时候 startActivity了 Activity b,之后再创建Activiyt a是不会调用Activity a的getNewIntent方法的,因为他此时不会处于栈顶

singleTask

就是创建了Activitiy a,之后又创建了b c d,当在d的时候再创建a,会把中间的b c都finish了。。意思就是这个栈中该Activity的实例只能存在一个,并且会将中间的都清空,并且调用自身的getNewIntent方法,如果是Activity a创建了Activity a 则只会调用自己的getNewIntent。 适用的场景:当你要创建一个东西(页面0),比如第一个页面要选择时间,第二个页面要选择地点,第三个页面选择费用,在第三个页面选择完成后,要把 1 2 3 页面拿到的东西回传给页面0,有两种方式,一种就是startActivityForRsult,但是每个页面都要加一次。。这样子感觉比较复杂,这时候只要将创建东西的页面改为singleTask就能完美解决这个问题。。。

singleInstance

如果应用1的任务栈中创建了MainActivity实例,如果应用2也要激活MainActivity,则不需要创建,两应用共享该Activity实例;
大概就是比如来了通知,要打开Activity a,之后另外一个应用也要打开Activity a这样子会进入到两个不同的栈中,设置他的属性为singleInstace就会使他们进入到同一个栈。。不会重复创建Activity。

转载于:https://www.cnblogs.com/wgha/p/5831118.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值