android - 在工作线程中启动异步任务

标签 android multithreading asynchronous task

我有两个问题:

  • 我们可以在工作线程中启动/执行异步任务吗?
  • 如果是,则在 UI 上调用方法 onPreExecute()onProgressUpdate(Progress...)onPostExecute(Result)线程?

我想知道,因为我有一个在工作线程上运行的 TCP 连接,当收到一个数据包时,我想启动一个新线程来解析这个数据包,然后刷新 UI 线程上的一些数据结构。

提前致谢!

最佳答案

来自 Android AsyncTask doc :

“任务实例必须在 UI 线程上创建。”,和

"execute(Params...) 必须在 UI 线程上调用。"

所以我认为你的第一个问题的答案是“不”。至于第二种,这些方法都是在 UI 线程上调用的,但有点没有实际意义。

编辑:我不确定这些是绝对限制还是强烈建议,但在这两种情况下,我都建议遵循它们。

关于android - 在工作线程中启动异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9763476/

相关文章:

android - 如何禁用远程 View 中的按钮?

java - 在 Android 上将 Canvas 保存为位图

multithreading - 如何以线程安全的方式停止正在运行的任务?

Android Firebase 数据库错误 : Permission denied

java - 我怎样才能在加载完成后只显示 webview fragment

java - 多线程编程中的公平性是什么?

c++ - 使用线程在以元音或辅音开头的单词之间交替

javascript - 等待单个 promise 与异步迭代器的异步解析顺序

dart - 为什么我们必须在使用 Isolates 后使用 exit(0) 从 main 退出?

javascript - 如何处理 fetch() 响应并仍然异步工作