私はAndroidでProgressDialogを使用して、ユーザーが、たとえば、長いタスクがUIを更新しているときにボタンを複数回押すのを防ぎます。
私の問題は、ProgressDialogが別のスレッドのように見えるため、しばらくすると表示されないように見えることです。
私の実験では、EditTextのテキスト変更リスナーでこのProgressDialog show()を呼び出しました。それでも、表示される前に短時間で複数の文字を入力することができます。
ProgressDialogがすでに開始されていることを検出する方法はありますか?
編集1:これは実際のデバイスで行われました。コードは単純にこれです:
editText.addTextChangedListener( new TextWatcher() {
...
public void onTextChanged(CharSequence s, int start, int before, int count) {
ProgressDialog lock = new ProgressDialog(UIClass.this);
lock.show();
}
...
});
私の最初の仮定は、最初に入力した文字の直後にダイアログが表示されるというものでしたが、短時間で複数の文字を入力してテストした場合でも可能であり、ロックは2番目または3番目の文字の後でのみ開始されます。これは、ProgressDialogが別のスレッドであるためだと思います。興味のある正確なポイントでUIを適切にロックする方法を知りたいです。