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

你不能打电话 dialog.dismiss(); 在后台线程中。您可以让线程在完成后向处理程序发送消息,并且在处理程序中您可以关闭对话框。处理程序在 ui 线程中工作

有一个关于它的教程

于 2012-05-08T11:39:36.143 回答
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 回答