在一个Activity中,多次调用startActivity()来启动另一个Activity,要想只生成一个Activity实例,方法有两种。
方法一:设置起动模式
一个Activity有四种启动模式:standard, singleTop, singleTask, singleInstance。
standard: 标准模式,一调用startActivity()方法就会产生一个新的实例。
singleTop: 如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例,而只是调用Activity中的newInstance()方法。如果不位于栈顶,会产生一个新的实例。
singleTask: 会在一个新的task中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。
singleInstance: 这个跟singleTask基本上是一样,只有一个区别:在这个模式下的Activity实例所处的task中,只能有这个activity实例,不能有其他的实例。
这些启动模式可以在功能清单文件中进行设置,<activity>中的launchMode属性。
方法二:在intent中加标志
Intent.FLAG_ACTIVITY_REORDER_TO_FRONT这个标志表示:如果这个activity已经启动了,就不产生新的activity,而只是把这个activity实例加到栈顶来就可以了。
代码如下:
Intent intent = new Intent(ReorderFour.this, ReorderTwo.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
分享到:
相关推荐
反射获取顶层activity实例
代码主要实现从一个Activity跳转到另外一个Activity
android Activity实例演示Activity 的lifecycle,及一个Activity如何启动另一个Activity
有关工作流的一个简单实例
一个简单介绍Activity两个界面直接数据传递的demo.
1、新建一个 ExitApplication 类继承Application 2、在你要退出的activity Oncreate方法中加入ExitApplication.getInstance().addActivity(this);作用是添加到你的activity历史中。 3、在你当前要完全退出程序的...
activity动态加载fragment实例
Android activity intent 相关代码实例:activity的跳转 1.不带返回值的跳转 2.带返回值的跳转 intent的简单介绍。 Bundle的简单介绍。
本文主要介绍Android 多个Activity相互之间的跳转,认识Activity生命周期,在做Android编程的时候用处很大,希望能帮助有需要的小伙伴
该实例是在不同的应用程序之间访问Activity并且可以传递数据。
在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用...
例子主要包括Fragment与Activity之间的通信,代码中还给出了两者之间通信具体调用的函数及其顺序。
android之间跳转几乎所有的效果汇总 淡入淡出效果 放大淡出效果 转动淡出效果1 转动淡出效果2 左上角展开淡出效果 压缩变小淡出效果 右往左推出效果 下往上推出效果 左右交错效果 放大淡出效果 ...
-- standard表示每执行一次startactivity就新建一个实例 singleTop表示每次执行startactivity时,如果当前activity在taskstack的顶端,则不新建实例,如果不在顶端则要新建实例 singleTask表示在当前task...
activity工作流程最佳实例, 经测试好用; 有完整的工作流界面,含数据库;包含activity常用接口实例,常用工作流场景。 直接在tomcat下就可以运行
Activity生命周期 启动模式实例
Activity和Service生命周期及使用AIDL通信
这是一个Activity开发的请假流程实例,可以作为用Activity开发工作流的参考;项目采用spring+hibernate+strus2+activity开发,可以运行;数据库采用mysql;
该程序实现了activity之间的跳转以及传值!
这是一个android两个activity的例子,从跟着网上的教程做的。