安卓ApiDemos学习 app/Activity/ReorderActivities

本文通过一个具体的示例,展示了如何使用FLAG_ACTIVITY_REORDER_TO_FRONT等Intent Flag来控制Android应用程序中Activity的启动行为。详细解释了几种常用Flag的功能,包括保持Activity在栈中的位置不变、清除栈顶的Activity以及启动新的任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

展示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、付费专栏及课程。

余额充值