0

一部のアクティビティに進行状況ダイアログを追加していますが、タイトルに例外の言及があります。それを解決する方法。

dialog = ProgressDialog.show(Notification.this, "loading please wait",                
"Loading. Please wait...", true);

new Thread() {
 public void run() {
   try{
     performBackgroundProcess1();
     //sleep(3000,000);
   } catch (Exception e) {
     Log.e("tag", e.getMessage());
 }

 // dismiss the progress dialog
     dialog.dismiss();
  }
}.start();

this.all バックグラウンド処理は performbackgroundprocess メソッドで実行されます。

4

2 に答える 2

0

runOnUiThread を次のように使用します。

        new Thread() {
     public void run() {
       try{
         performBackgroundProcess1();
         //sleep(3000,000);
       } catch (Exception e) {
         Log.e("tag", e.getMessage());
     }

// dismiss the progress dialog
      CurrentActivity.this.runOnUiThread(new Runnable(){  
    @Override  
    public void run() {  
    // TODO Auto-generated method stub  
    dialog.dismiss();  
    }  
    });    
      }
    }.start();
于 2012-05-08T12:02:06.390 に答える
0

dialog.dismiss(); を呼び出すことはできません。バックグラウンド スレッドで。スレッドが完了すると、スレッドがハンドラーにメッセージを送信するようにすることができ、ハンドラーでダイアログを閉じることができます。ハンドラーは ui スレッドで動作します

それについてのチュートリアルがあります

于 2012-05-08T11:39:36.143 に答える