Android四大组件之Activity(几种FLAG加载模式)

首先了解一下Stack和Activity的关系

Stack就像一个容器,而Activity就是填充这个容器的东西,第一个Activity会在最下面,最后添加的Activity会在最上面。从Stack中取东西时,最后添加的东西最先取出,而最先添加的东西会最后取出。而Activity在Stack中的位置是可以控制的。在Activity跳转的时候可以通过Intent.FLAG....设置新建的Activity的创建方式。

1,FLAG_ACTIVITY_NEW_TASK

比如在栈1中已经有了A,B,C三个Activity,如果在C中以这种模式启动D。如果在AndroidManifest添加的Affinity的值与栈1中的不一样的话,则会在新标记的Affinity所在的栈中压入这个Activity,如果是一样或者是默认,则和基本启动模式的标准模式一样。(摸准模式见上一篇)


2,FLAG_ACTIVITY_BROUGHT_TO-FRONT

如:我们有A,在A中以这种模式启动B,B在正常启动C,D,此时栈的情况就是A,C,D,B。


3,FLAG_ACTIVTY_SING_TOP

相当于基本模式的SingleTop,如果栈种情况为A,B,C,D,再以这种模式启动D,那么栈中情况还是A,B,C,D


4,FLAG_ACTIVITY_CLEAR_UP (很有用)

相当于基本启动模式的SingleTask,如果栈种情况为A,B,C,D,再以这种模式启动B,那么栈中情况还是A,B


例如:

case R.id.btn4:
    Intent intent=new Intent(NoteBookActivity.this, ViewPagerActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);
    break;

这时按钮的功能类似于回退键。

5,FLAG_ACTIVTY_NO_HISTORY
	用这个FLAG,一旦退出,它将不复存在。如果栈种情况为A,B,C,在C中以这种模式启动D,D再正常启动E,此时栈中情况为A,B,C,E



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值