2 myq 26 myq_26 于 2012.10.09 14:16 提问

如何防止多次打开Activity?

在我的应用程序图标中有一个常见的菜单。点击一个图标将开始一个活动。如果一个活动正在运行,如何预防它被多次点击重新开始?还有我可以将一个活动的状态设置为onPause,总是让它在前台显示吗?

3个回答

znl_12
znl_12   2012.10.09 17:46
已采纳

使用

intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

开始执行Activity.

如果设置在一个Intent传递给Context.startActivity(),这个标志将导致发起的Activity被带到前面已经开始运行的历史堆栈。

lonyjianhui
lonyjianhui   2012.10.09 14:28

android:launchMode="singleTask"
加上这句,每次打开如果已有此activity,就会打开原来的实例,否则会创建新的activity

woshiwoxingfu
woshiwoxingfu 哈哈,这个好用,谢谢
5 年多之前 回复
lonyjianhui
lonyjianhui 两者有点不同,注意一下
接近 6 年之前 回复
myq_26
myq_26 哦,这个方法可以实现,我查资料添加 android:launchMode="singleInstance"也可以实现。
接近 6 年之前 回复
xiaoyan_12
xiaoyan_12   2012.10.09 15:57

在你的activity中创建下面一个实例,这个activity就不会被多次打开。

    Class ExampleA extends Activity {
     public static Activity classAinstance = null;

     @Override
     protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        classAinstance = this;
    }

}

如果你想检查这个activity是否是多次打开,再添加这个if语句用做检查。

if(ExampleA.classAinstance == null) {
       "Then only start your activity"
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
防止多次快速点击打开多个activity的问题
防止多次快速点击打开多个activity的问题   在Android开发中存在这样一个问题,如果一个按钮是打开一个activity界面的,如果用户在1秒钟之内快速点击这个按钮,那么就会打开多个相同的activity,这个是相当浪费资源的,下面介绍一种解决方法。   /** 判断是否是快速点击 */ private static long lastClickTime; public st
Android 防止启动页面(SplashActivity)被多次启动(笔记)
话不多说直接上代码: @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(!isTaskRoot()){ Intent i=getIntent();
Activity中控制线程和防止线程重复开启的解决办法
在android开发中,Activity里面的子线程在Activity  onDestroy()后并没有销毁,而是一直在运行。解决办法有两种,一种通过service开启线程,并控制线程周期。第二种是本文要讲的:通过控制变量控制线程的运行。 具体是定义一个boolean全局变量threadRun,由这个变量控制线程中的//do something 循环,想执行线程功能时将threadRun=tru
Android学习之防止按钮连续点击,打开多个相同activity
防止连续点击的触发事件,可以有好多种方法来处理。 方法一:像Button、ImageView之类的,可以在点击之后设置button.setClickable(false)来处理,然后在界面重新加载时,设置button.setClickable(true),这个思路适合界面操作比较简单,只有一个或两个提交修改按钮的时候。 方法二:既然是为了防止连续点击,可以判断该按钮两次点击的时间间隔,如果两个
Activity次级页面和主页间来回跳转,防止重复创建Activity实例
很多时候,在进入详情页或次级页面的时候,最后会返回到上一个Activity。在返回时,一般用Intent去启动。但是如果单纯地使用Intent intent = new Intent(A.this, B.class) ; startActivity(intent) ;你会发现,多次地从A进入B,又从B回到A,然后这两个Activity就会一直创建。打log发现两个Activity的onCreate方
Android receiver 多次启动相同Activity
Android receiver 多次启动相同Activity在Receiver中多次启动相同的Activity,如果Intent是相同的是不会重新创建Activity的,只有Intent内容不同时才会启动多个Activity。TestActivity.java 代码段:package com.example.gonglt1.ltestapp; import android.app.Activity
Android实现不重复启动App的方法
由于近期需要实现在Notification点击把后台的App调起来,即最后显示的Activity在调起来后应该是在第一个界面,且整个App的task不改变,在网上查了以下几种方法都行不通 1.在Androidmanifest.xml的根Activity添加android:alwaysRetainTaskState="true"属性。 2.在Androidmanifest.xml给Act
[Android实例] 同一Activity的实例被多次重复创建
如此这般配置即可。在AndroidManifest.xml文件中             android:name="com.lxXxxxyActivity"            android:launchMode="singleInstance" >    这样设置就好了。 在AndroidManifest.xml中的标签中可以配置android:launchM
Android在界面中重复点击导致多次跳转或打开多个相同界面的问题的解决方式
Android在界面中重复点击导致多次跳转或打开多个相同界面的问题的解决方式
防止程序多次打开
防止程序多次打开防止程序多次打开防止程序多次打开