2012-10-28 25 views
1

程序当我运行我想运行一个功能,不挂的第二

msgcheck.setOnClickListener(new View.OnClickListener() {    
     @Override 
     public void onClick(View v) { 

      if(msgcheck.isChecked()){ 
       //hedearMsg 


       final Dialog dialog = new Dialog(this); 
       dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
       dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 
       dialog.setContentView(R.layout.custommsg); 
       dialog.setCancelable(true); 
       dialog.show(); 

       Thread t = new Thread() { 
        public void run() { 
        // Do something on another thread 
         PopulatePeopleList(); 

        } 
       }; 
       t.run(); 

     } 
    }); 

我的程序挂起了几秒钟,然后显示对话框
我想不挂和PopulatePeopleListfunc工作的人的想法运行此对话框?

回答

3

的线程开始start,不run

Thread t = new Thread() { 
    public void run() { 
     // Do something on another thread 
     PopulatePeopleList(); 
    } 
}; 
t.start(); 

run只会调用run方法依次在主线程上。

+0

感谢这就是工作 –

0

第三种选择是使用一个Runnable,可在线程中构造,或其它地方:

new Thread(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     PopulatePeopleList(); 
    } 

}).start(); 
+0

@Tudor,我的错误。我做了一个编辑。 – Phil

相关问题