Android异步任务: Only the original thread that created a view hierarchy can touch its views

标签 android multithreading android-asynctask

我在 doInBackround 有一个异步任务,我做了各种各样的事情,在各个部分之后我运行了

 onProgressUpdate("You proceeded a bit further 1/5");

这多次工作正常,直到(仍然全部在 doInBackground 中)我有

HttpSessionToken = (HttpURLConnection)new URL("http://myserver").openConnection();
HttpSessionToken.setRequestMethod("GET");   
HttpSessionToken.setRequestProperty("Accept", "application/json");

onProgressUpdate("Still everything is working fine");
int returnCode = HttpSessionToken.getResponseCode();
onProgressUpdate("This onProgressUpdate crashes!");

所以最后的onProgressUpdate崩溃了,但是为什么会崩溃呢? getResponseCode() 是否切换了我正在运行的线程?

最佳答案

你不能直接调用onProgressUpdate,你必须调用publishProgress并让AsynTask框架来处理要调用的onProgressUpdate返回 UI 线程。

关于Android异步任务: Only the original thread that created a view hierarchy can touch its views,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15509183/

相关文章:

c# - 使用单例模式 Linq to Sql 数据上下文

android - 如何使用 JWT 为 Android 应用程序实现刷新 token 流程

用于音频的 Android 事件监听器

java - Fragment 内的 RecyclerView 未正确显示

java - Spring Rest Web 请求范围

multithreading - Powershell 可以并行运行命令吗?

java - AsyncTask 中通过代码旋转屏幕崩溃

android-asynctask - Android Room + AsyncTask

安卓 :unable to play video

android - 在android项目中使用第三方库