温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android中启动模式FLAG_ACTIVITY_CLEAR_TOP的示例分析

发布时间:2021-08-27 11:15:17 来源:亿速云 阅读:413 作者:小新 栏目:开发技术

这篇文章主要为大家展示了“Android中启动模式FLAG_ACTIVITY_CLEAR_TOP的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“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的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI