android中的异步任务与线程

新手上路,请多包涵

在 UI 中,为了执行一些后台工作,我使用了单独的 Thread 。但正如其他人所建议的那样,我现在正在使用 AsyncTask

ThreadAsyncTask 之间的主要区别是什么?

在哪种情况下,我应该使用 Thread 还是 AsyncTask

原文由 Ram 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 330
2 个回答

对于长时间运行或 CPU 密集型任务,基本上有两种方法可以做到这一点:Java 线程和 Android 的原生 AsyncTask。

两者都不一定比另一个更好,但知道何时使用每个调用对于利用系统性能为您带来好处至关重要。

将 AsyncTask 用于:

  1. 不需要下载大量数据的简单网络操作
  2. 可能需要超过几毫秒的磁盘绑定任务

将 Java 线程用于:

  1. 涉及中到大量数据的网络操作(上传或下载)
  2. 需要在后台运行的高 CPU 任务
  3. 您想要控制相对于 GUI 线程的 CPU 使用率的任何任务

互联网上有很多很好的资源可以帮助你:

http://www.vogella.com/articles/AndroidBackgroundProcessing/article.html

原文由 Mohit 发布,翻译遵循 CC BY-SA 4.0 许可协议

线

  • 一般的 长任务
  • 通过 thread.start() 方法调用
  • 任何线程 触发
  • 自己的线程 上运行
  • 手动线程管理/代码可能变得难以阅读

异步任务

  • 必须与主线程通信的 小任务
  • 通过 excute() 方法调用
  • 主线程 触发
  • 工作线程 上运行
  • 必须从主线程执行和创建

原文由 Umang Kothari 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题