只有创建视图层次可以触摸其观点原来的线程(Only the original thread that

2019-10-29 07:04发布

林在一些活动。但即时得到异常提title.how添加进度对话框来解决它。

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方法进行。

Answer 1:

你不能调用dialog.dismiss(); 在后台线程。 你可以让线程将消息发送到处理程序时,他们这样做,并在处理程序中,你可以关闭该对话框。 处理程序UI线程工作

有一个教程吧



Answer 2:

使用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();


文章来源: Only the original thread that created a view hierarchy can touch its views