您的位置:首页 > 其它

关于finish的startActivity

2015-07-23 08:54 281 查看
假设现在已经按顺序打开了 A、B、C、D 四个Activity,现在在D中。

1、启动B(新的),关闭D、C和B(旧的)。

[java] view
plaincopy

Intent intent = new Intent(this, B.class);  

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);    

startActivity(intent);    

A、B、C、D 变成 A、B。                     B的启动模式是默认的话。

2、回到B,关闭D、C

[java] view
plaincopy

Intent intent = new Intent(this, B.class);  

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  

intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);  

startActivity(intent);    

A、B、C、D 变成 A、B。                     会调用B中的 onNewIntent() 方法。

3、跳回到B,但不新启动一个B。

[java] view
plaincopy

Intent intent = new Intent(this, B.class);  

intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);  

startActivity(intent);  

A、B、C、D 变成 A、C、D、B。        相当于给B设置了单启动模式。

4、普通新启动一个B

[java] view
plaincopy

Intent intent = new Intent(this, B.class);  

startActivity(intent);  

A、B、C、D 变成 A、B、C、D、B。    会造成迭代状况。

转自: http://blog.csdn.net/kevinlinkai/article/details/14447311

简而言之,如果在finish中要关掉前面的activity,方法如下:

[java] view
plaincopy





Intent intent = new Intent(this, 要跳转的.class);    

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);    

intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);    

startActivity(intent);   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: