2016-03-24 37 views
2

我有一个Android应用程序,当用户快速点击多次按钮时,多次初始化相同的活动。如何防止多次初始化活动

为了防止这种情况,我在清单文件中添加了android:launchMode="singleInstance"。但是现在,当一个活动自行调用时,它不起作用。

我也试过

Intent myintent = getIntent(); 
myintent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 

但是,这也不能工作。

当用户多次快速点击按钮时,如何防止进行多项活动,以及如何正确地调用相同的活动。谢谢。

+0

尝试launchMode =“singleTop”。编辑:你是什么意思,“我怎么能有相同的活动调用本身正确”?如果从自己调用该活动,是否希望重新创建该活动? – Wukash

+0

@Wukash它没有工作,但一个活动不能自称。 – jason

+0

@Wukash当我正在进行一项活动时,按下一个按钮并调用相同的活动时,它不起作用。 – jason

回答

1

是的,如果你是“触发快乐”,会发生这种情况。您也可以在许多情况下使用多点触摸同时激活一组选项。如果你真的需要解决这个问题,你可以看看J Whitfield建议的禁用元素(element.setEnabled(false)element.setClickable(false))或截取onTouch

1

您可以尝试在检测到第一次点击后禁用按钮。

Button button = theView.findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if(v.isEnabled()){ 
        v.setEnabled(false); 
       } 
       //Call your new activity here 
       ...activity stuff... 
      } 
     }); 
+0

你可以用一个例子来表示吗? – jason

+0

我已更新我的问题以显示如何实现此功能 –

+0

使用此配置,当用户返回到上一个活动时,他不能使用该按钮... – jason