【发布时间】:2015-03-05 11:17:33
【问题描述】:
android 编程中使用的 Handler 是干什么用的?我们如何使用它们来关闭 ProgressDialog?
我从网上提到了一些关于这一点的事情,但没有发现它们很有说服力。将 ProgressDialog 与 Handler 一起关闭的示例将是一件很棒的事情。
谢谢, 大卫
【问题讨论】:
标签: android
android 编程中使用的 Handler 是干什么用的?我们如何使用它们来关闭 ProgressDialog?
我从网上提到了一些关于这一点的事情,但没有发现它们很有说服力。将 ProgressDialog 与 Handler 一起关闭的示例将是一件很棒的事情。
谢谢, 大卫
【问题讨论】:
标签: android
改用 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();
}
};
我强烈建议对与 Android 相关的任何线程使用 AsyncTask。
【讨论】:
处理程序用于 UI 和后台线程之间的通信。基本上 Handler 会将消息和可运行对象发送到线程的消息队列。
【讨论】: