关于finish的startActivity
来源:互联网 发布:java math.ceil 编辑:程序博客网 时间:2024/05/21 09:04
假设现在已经按顺序打开了 A、B、C、D 四个Activity,现在在D中。
1、启动B(新的),关闭D、C和B(旧的)。
- 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
- 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。
- 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
- 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,方法如下:
Intent intent = new Intent(this, 要跳转的.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivity(intent);
1 0
- 关于finish的startActivity
- 关于finish的startActivity
- 关于finish的startActivity
- finish()和startActivity两种结束Activity的区别
- startActivity(intent);然后finish();和finish();然后startActivity(intent);
- 关于startActivity的一些知识
- 关于startActivity
- 关于finish
- 关于startActivity跳转引起的异常
- 关于在 Service 或 BroadcastReceiver 中 startActivity 的问题
- 关于调用finish()后dialog一闪而过的问题
- 关于finish() onDestroy() 和System.exit()的区别
- 关于finish()后父类的刷新问题
- 关于finish()调用后Activity的生命周期问题
- StartActivity的流程
- Context的startActivity方法
- startActivity()的流程
- StartActivity路上的mParent
- hadoop主节点(NameNode)备份策略以、恢复方法、操作步骤
- xcode添加十六进制色值快捷键插件
- Gstreamer开发环境搭建
- 关于ffmpeg解码通过UDP协议传输的视频流遇到fifosize 的问题
- C++ STL:vector
- 关于finish的startActivity
- apue编程之getopt ,getopt_long使用方法以及实例
- 士兵杀敌(二)
- JVM(java 虚拟机)内存设置
- LeetCode OJ算法题(三):Longest Substring Without Repeating Characters
- 1014. 福尔摩斯的约会 (20)
- NYOJ 网络的可靠性(换个思路想超简单的一道题)
- android源码使用U盘激活Launcher
- android OTA 升级包含增量升级