当前位置:首页 > Android

Android 只开启一个Activity实例

jsc10年前 (2016-04-07)Android3699

在一个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);


扫描二维码推送至手机访问。

版权声明:本文由微小站发布,如需转载请注明出处。

本文链接:https://jsc0.com/post/106.html

标签: 单例
分享给朋友:

“ Android 只开启一个Activity实例 ” 的相关文章

Android开发中Bundle用法 包裹数据

SDK里是这样描述:A mapping from String values to various Parcelable types。 它帮助我将数据打包传入intent里面,为使用这些数据提供了便利......…

EditText焦点

et_text.requestFocus();    //获得焦点<LinearLayout          style="@style/FillWr…

android异步任务详解 AsynTask

android异步任务详解 AsynTask

android提供了一套专门用于异步处理的类。即:AynsTask类。使用这个类可以为耗时程序开辟一个新线程进行处理,处理完时返回。其实,AsynTask类就是对Thread类的一个封装,并且加入了一些新的方法。编程时,两者都可以实现同样的功能。本文后面将对AsynTask和Thread进行比较。1…

java.util.Properties类

java.util.Properties类

一、认识properties文件 1、properties文件是一个文本文件2、properties文件的语法有两种,一种是注释,一种属性配置。 注    释:前面加上#号 属性配置:以“键=值”的方式书写一个属性的配置信息。3、prope…

android上传图片至服务器

本实例实现了android上传手机图片至服务器,服务器进行保存服务器servlet代码publicvoid doPost(HttpServletRequest request, HttpServletResponse response)&…

修改keystore密码别名等

修改keystore密码别名等

之前在测试Eclipse ADT的Custom debug ˂a target="_blank" title="View all posts in keystore" hr…