私のアプリには、4つのボタンが付いたホーム画面があります。あいまいで計り知れない理由で、ユーザーが同時に複数のボタンをクリックした場合、すべてのターゲットアクティビティは、クリックされた順序で開きます。
私はここで似たようなことについていくつかの質問を見ましたが、それらは実際には質問に答えていません。うまくいけば、それを処理するためにマルチタッチメソッドをオーバーライドする必要はありません。
この動作を回避して、同時に複数のクリックイベントを防ぐにはどうすればよいですか?
私のアプリには、4つのボタンが付いたホーム画面があります。あいまいで計り知れない理由で、ユーザーが同時に複数のボタンをクリックした場合、すべてのターゲットアクティビティは、クリックされた順序で開きます。
私はここで似たようなことについていくつかの質問を見ましたが、それらは実際には質問に答えていません。うまくいけば、それを処理するためにマルチタッチメソッドをオーバーライドする必要はありません。
この動作を回避して、同時に複数のクリックイベントを防ぐにはどうすればよいですか?
私が開発したアプリケーションで、この正確な問題が発生しました。テストの結果、手で画面をマッシュし、同時に複数のボタンのonClickイベントを発生させるのは比較的簡単であることがわかりました。
アクティビティのすべてのボタンに同じOnClickListenerを使用しました。コードは次のようなものでした:
protected final android.view.View.OnClickListener m_clickListener = new android.view.View.OnClickListener() {
@Override
public void onClick(View v)
{
if(!m_buttonsEnabled)
{
return;
}
switch(v.getId())
{
case R.layout.button1:
m_buttonsEnabled = false;
final Intent i = new Intent(MainScreenActivity.this, Button1Activity.class);
startActivity(i);
}
break;
case R.layout.button2:
m_buttonsEnabled = false;
final Intent i = new Intent(MainScreenActivity.this, Button2Activity.class);
startActivity(i);
}
break;
}
}
元のアクティビティにフラグを設定し、そのフラグがfalseに設定されている場合にのみ新しいアクティビティを開くことができます。ボタンの1つにonClickイベントを入力するとすぐに、フラグをtrueに設定します。
そうは言っても、これがそのようなハッキングを正当化するのに十分な問題であると本当に予見していますか?