【问题标题】:Difference between ProgressDialog.setProgress(value) and ProgressDialog.setMessage(message) in AsyncTaskAsyncTask 中 ProgressDialog.setProgress(value) 和 ProgressDialog.setMessage(message) 的区别
【发布时间】:2014-10-31 13:00:00
【问题描述】:

我之前使用setProgress() 方法来更新进度,但现在有几个进度需要显示和更新,所以我尝试使用setMessage() 来完成。 但是,当使用 setMessage() 时,我会在 ProgressDialog 更新后立即收到 CalledFromWrongThreadException(就像,我看到它很快就会更新)。

这是我的onProgressUpdate 方法:

@Override
        protected void onProgressUpdate(Integer... values) {
            super.onProgressUpdate(values);
//          progressdialog.setProgress(values[0]);
            Log.v("PDMessage", "Cycle: " + values[1] + "/" + values[2] + "\n" + "Progress: " + values[0] + "%");
            progressdialog.setMessage("Cycle: " + values[1] + "/" + values[2] + "\n" + "Progress: " + values[0] + "%");
//          updateProgressBar(values[0]);
        }

LogCat 向我显示了具有正确值的预期输出,因此这些没有问题。

谁能解释一下这里的区别? 我知道如何解决它(那里已经有答案),但我不知道为什么setProgress() 不要求我这样做。

【问题讨论】:

  • 尝试在 runOnUiThread() 中编写 setMessage() 代码。
  • 是的,我已经读过它,但我想知道,为什么我必须使用 setMessage() 而不是 setProgress()
  • 仍在寻找答案。提醒一下,我不需要代码。这只是我想了解的。
  • 检查 AsyncTask 各种改变进度值的方法:developer.android.com/reference/android/os/…

标签: android android-asynctask progressdialog


【解决方案1】:

试试这样,

  @Override
            protected void onProgressUpdate(Integer... values) {
                super.onProgressUpdate(values);
    //          progressdialog.setProgress(values[0]);
                Log.v("PDMessage", "Cycle: " + values[1] + "/" + values[2] + "\n" + "Progress: " + values[0] + "%");

 runOnUiThread(new Runnable() {
         @Override
         public void run() {
             progressdialog.setMessage("Cycle: " + values[1] + "/" + values[2] + "\n" + "Progress: " + values[0] + "%");

            }



        }
    });

【讨论】:

  • 看到他的评论......一次?
  • 谢谢,我知道如何解决它。但我的问题是,为什么我不应该用 setProgress() 方法做同样的事情。
  • 顺便说一句。 Integer values 必须是 final
猜你喜欢
  • 2018-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 2013-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多