这篇文章主要为大家展示了“Android中启动模式FLAG_ACTIVITY_CLEAR_TOP的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android中启动模式FLAG_ACTIVITY_CLEAR_TOP的示例分析”这篇文章吧。
四种启动模式
- <李>
标准:,只要被启动就会创建一个新的
李> <李>singleTop:,栈顶复用(当被启动的活动处于任务栈顶时,可以复用,直接调用onNewIntent方法)
李> <李>singleTask:,栈中复用(被启动的活动已经处于栈中,会将上边的活动清除出栈,调用onNewIntent)
李> <李>singleInstance,,全局单实例(应用场景:地图,活动初始化需要大量资源)
李>意图的标志位标记
- <李>
意图。FLAG_ACTIVITY_SINGLE_TOP,,与加载模式singleTop功能相同
李> <李>意图。FLAG_ACTIVITY_CLEAR_TOP,,,销毁目标活动和它之上的所有活动,重新创建目标活动
李>例:A、B、C、D四个活动,启动模式均为默认,依次启动,在D中启动B .
- <李>
添加意图。FLAG_ACTIVITY_CLEAR_TOP
效果:C, D清除出栈;B被结束掉,重新启动,重走生命周期,不会走onNewIntent()方法
Intent Intent =, new 意图(这个,B.class); intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); d.startActivity(意图);
- <李>
添加Intent.FLAG_ACTIVITY_CLEAR_TOP和Intent.FLAG_ACTIVITY_SINGLE_TOP
效果:C, D清除出栈,B调用onNewIntent()方法
Intent Intent =, new 意图(这个,B.class); intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP |, Intent.FLAG_ACTIVITY_SINGLE_TOP); d.startActivity(意图);
- <李>
添加Intent.FLAG_ACTIVITY_CLEAR_TOP和意图。FLAG_ACTIVITY_REORDER_TO_FRONT
效果:C, D清除出栈,B回到前台,调用onResume()方法
Intent Intent =, new 意图(这个,B.class); intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP |, Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); d.startActivity(意图);
- <李>
应用的退出登录功能:启动LoginActivity,且栈中只有一个LoginActivity
李>Intent Intent =, new 意图(活动,LoginActivity.class); intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TASK |, Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(意图);
以上是“Android中启动模式FLAG_ACTIVITY_CLEAR_TOP的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!