安卓ApiDemos学习 app/Activity/ReorderActivities

展示FLAG_ACTIVITY_REORDER_TO_FRONT的应用

这个demo的画面启动顺序如下

ReorderOnLaunch ---> ReorderTwo ---> ReorderThree ---> ReorderFour


在画面ReorderFour中,再次启动ReorderTwo ,加了参数

Intent intent = new Intent(ReorderFour.this, ReorderTwo.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
能让ReorderTwo 不重新启动,而是将activity stack中的ReorderTwo 直接移动到最顶层


除了刚才的flag之外,常用的还有如下flag

FLAG_ACTIVITY_CLEAR_TOP

如果需要启动的Activity已经在activity stack中,则不重新启动一个这个Activity的实例,而是在这个Activity上方的所有Activity都将关闭,

然后将 Activity直接移动到stack最顶层


FLAG_ACTIVITY_NEW_TASK

启动一个新的task,一般从service中启动一个activity往往需要这个参数


如果需要可定制的activity生命周期管理,就需要自己实现一个stack manager。

大致的原理是定一个baseactivity,所有自己的activity继承base,

在base中,拦截oncreate方法,每次实例化activity时,向自定义的stack中放入新activity的引用

自定义的stack需要单实例模式



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值