【问题标题】:Handlers in AndroidAndroid 中的处理程序
【发布时间】:2015-03-05 11:17:33
【问题描述】:

android 编程中使用的 Handler 是干什么用的?我们如何使用它们来关闭 ProgressDialog?

我从网上提到了一些关于这一点的事情,但没有发现它们很有说服力。将 ProgressDialog 与 Handler 一起关闭的示例将是一件很棒的事情。

谢谢, 大卫

【问题讨论】:

    标签: android


    【解决方案1】:

    改用 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。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-01
        • 2016-01-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多