这篇文章主要介绍了Android 启动模式FLAG_ACTIVITY_CLEAR_TOP案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
四种启动模式
- standard: 只要被启动就会创建一个新的
- singleTop: 栈顶复用(当被启动的Activity处于Task栈顶时,可以复用,直接调用onNewIntent方法)
- singleTask: 栈中复用(被启动的Activity已经处于栈中,会将上边的Activity清除出栈,调用onNewIntent)
- singleInstance 全局单实例(应用场景:地图,Activity初始化需要大量资源)
Intent的标志位FLAG
- Intent.FLAG_ACTIVITY_SINGLE_TOP 与加载模式singleTop功能相同
- Intent.FLAG_ACTIVITY_CLEAR_TOP 销毁目标Activity和它之上的所有Activity,重新创建目标Activity
例: A,B,C,D四个Activity,启动模式均为默认,依次启动,在D中启动B。
- 添加Intent.FLAG_ACTIVITY_CLEAR_TOP
效果: C,D清除出栈;B被finish掉,重新启动,重走生命周期,不会走onNewIntent()方法
Intent intent = new Intent(this,B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
d.startActivity(intent);
- 添加Intent.FLAG_ACTIVITY_CLEAR_TOP和Intent.FLAG_ACTIVITY_SINGLE_TOP
效果:C,D清除出栈,B调用onNewIntent()方法
Intent intent = new Intent(this,B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
d.startActivity(intent);
- 添加Intent.FLAG_ACTIVITY_CLEAR_TOP和Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
效果:C,D清除出栈,B回到前台, 调用onResume()方法
Intent intent = new Intent(this,B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
d.startActivity(intent);
- App的退出登录功能:启动LoginActivity,且栈中只有一个LoginActivity
Intent intent = new Intent(activity,LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
到此这篇关于Android 启动模式FLAG_ACTIVITY_CLEAR_TOP案例详解的文章就介绍到这了,更多相关Android 启动模式FLAG_ACTIVITY_CLEAR_TOP内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
织梦狗教程
本文标题为:Android 启动模式FLAG_ACTIVITY_CLEAR_TOP案例详解
基础教程推荐
猜你喜欢
- Android多返回栈技术 2023-04-15
- IOS 播放系统提示音使用总结(AudioToolbox) 2023-03-01
- 解决Android Studio突然不显示logcat日志的问题 2023-02-04
- Android开发使用RecyclerView添加点击事件实例详解 2023-06-15
- android studio按钮监听的5种方法实例详解 2023-01-12
- Flutter绘图组件之CustomPaint使用详解 2023-05-12
- iOS开发教程之XLForm的基本使用方法 2023-05-01
- Flutter手势密码的实现示例(附demo) 2023-04-11
- Android中的webview监听每次URL变化实例 2023-01-23
- IOS应用内跳转系统设置相关界面的方法 2022-11-20
