アプリの実行速度が遅いと、ユーザーがインテントを起動するボタンを複数回クリックできることがあります。これはおそらく ICS で修正されたバグだと聞きましたが、本当ですか? それとも、開始するインテントごとに起動モードを管理する必要がありますか? ご協力いただきありがとうございます。
質問する
114 次
2 に答える
0
簡単なデバウンスを追加します。
class MyActivity extends Activity {
private boolean wasButtonPressed = false;
void onResume() {
super onResume();
wasButtonPressed = false;
}
void onClick( View view ) {
if( !wasButtonPressed ) {
wasButtonPressed = true;
startActivity( ....
}
}
于 2013-01-03T15:15:46.417 に答える
0
長い操作を実行している場合はボタンを無効にする必要があり、ユーザーのクリックに応答する操作を実行した後に有効にします。onClick メソッドで長時間の操作を実行しています。OS はユーザーのクリックをすべてスタックします。魔女は非同期に転送されますが、これはバグではありません。進行状況ダイアログを表示して、長時間の操作をユーザーに通知できます。簡単な修正は、前のクリックが完全に消費されるまでボタンを無効にすることです.
@Override
public void onClick(View aView) {
int id = aView.getId();
switch (id) {
case R.id.yourButton:
aView.setEnabled(false);
// add your own implementation
aView.setEnabled(true);
break;
default:
break;
}
}
于 2013-01-03T15:16:50.253 に答える