2010-09-03 71 views
1

Android proggraming中使用的Handler是什么?我们如何使用它们来关闭ProgressDialog?Android中的处理程序

我从网上引用了一些东西,但没有发现它们很有说服力。与Handler一起解除ProgressDialog的例子将是一件好事。

感谢, 大卫

回答

5

使用的AsyncTask代替。它有一个名为onPostExecute的函数,您可以在其中取消进度对话框。

@Override 
    protected void onPostExecute(Void result) { 
     Toast.makeText(ctx, "Completed Synch with Server", Toast.LENGTH_SHORT) 
       .show(); 

       mProgressDialog.dismiss(); 

    } 

处理程序用于在预定时间运行一小段代码。通常,一个使用AlarmManager推出意图(活动,服务,广播),但如果你有兴趣在只运行的代码,你可以使用处理一小部分:

if(condition == true){ 

    Handler timer = new Handler(); 
    timer.postDelayed(task, (5 * 60 * 1000); 
} 

--- 

     private Runnable task = new Runnable() { 
     public void run() { 
      mProgressDialog.dismiss(); 
     } 
    }; 

我强烈建议使用任何一个的AsyncTask线程在Android上相关。

-1

处理程序用于UI和后台线程之间的通信。基本上,Handler会将消息和可运行的消息发送到线程的消息队列中。