スレッドを使用しているため、アプリでデータが読み込まれている間に進行状況ダイアログが表示されます。エラーが発生した場合は、進行状況ダイアログが停止し、「エラー」というポップアップが表示されます。しかし、私は、警告ダイアログがUIスレッド内で実行できず、ハンドラを使用する必要があることを知りました。この問題に助けを借りている人はいますか?ここに私のコードです。ありがとうアラートダイアログがスレッド内で動作しないのはなぜですか?
verifyCode.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
final ProgressDialog progressDialog = ProgressDialog.show(
Activate.this, "", "Loading...");
new Thread(new Runnable() {
public void run() {
try {
new AlertDialog.Builder(Activate.this)
.setTitle(getResources().getString(R.string.InvalidKey))
.setMessage(getResources().getString(
R.string.PleaseEntervalidRegistration)).setNeutralButton(
"OK", null).show();
progressDialog.dismiss();
//more code
}).start();
}
私はなぜ新しいスレッドが必要なのか尋ねることはできますか?それは実行全体が同期しているように見えるからです。また、ベストプラクティスとして、スレッドを直接処理しないようにしてください。 Androidには非同期実行を処理するAsyncTaskというクラスがあります。 –
私がスレッドに入れている理由は、進捗ダイアログを追加したいからです。私が見たすべての例では、スレッド内で進捗ダイアログが終了しています。 – Sean