当我尝试从AsyncTask onProgressUpdate更新TextView(通过侦听器)时,我收到“CalledFromWrongThreadException”错误。
如果我尝试从onPostExecute更新相同的TextView,一切正常。
我一直在测试使用基于的代码 https://github.com/commonsguy/cw-android/tree/master/Service/WeatherAPI
(使用一个小的mod在doInBackgroundMethod中执行onProgressUpdate,并添加onProgressUpdate覆盖)
任何有关修复的建议都将非常感激。
答案 0 :(得分:4)
您是否从代码中调用了onProgressUpdate()
?你不应该这样做。使用publishProgress()
方法。
答案 1 :(得分:-1)
onProgressUpdate
不在UI线程上运行,因此您无法从此方法访问视图。如果您想要更新进度,您应该找到一种方法来将AsyncTask
与您的活动同步。我正在使用的方法是使用onBegin
,onUpdate
和onFinish
等方法创建界面。您应该在主活动类中实现此接口。然后,您应该在AsyncTask
内有一个活动实例。在onProgressUpdate
方法中,您只需在活动中调用onUpdate方法并更新布局。希望我已经解释清楚了。