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 两者有点不同,注意一下
大约 5 年之前 回复
myq_26
myq_26 哦,这个方法可以实现,我查资料添加 android:launchMode="singleInstance"也可以实现。
大约 5 年之前 回复
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
上传中...
上传图片
插入图片