2016-03-24 72 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