我在开始android开发时(以及一般的初学者开发)学到的第一件事情之一是UI除了主UI线程之外不应该(并且在许多情况下不能)被任何其他线程更新。在AsyncTask doInBackground()中更新进度条?
我有一个AsyncTask在doInBackground()中移动一堆文件。我有一个代表用户的进度条。
对于这个问题(主要是由于懒惰),我决定在doInBackground()方法/线程中尝试progressBar.setProgress([更新的进度]),令我惊讶的是,它工作正常。
但是,这似乎违背了我学到的习俗。我知道AsyncTask有一个onProgressUpdate()或其他的,但它让我感到困惑,我不确定是否值得切换,因为当前的实现似乎工作正常。
我不应该在后台线程中更新进度条吗?
你的意思是'publishProgress()'而不是'refreshProgress()'? –
是的,他的意思是publishProgress –