android - android中的异步任务与线程

标签 android multithreading android-asynctask

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

ThreadAsyncTask 的主要区别是什么?

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

最佳答案

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

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

将 AsyncTask 用于:

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

将 Java 线程用于:

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

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

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

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

相关文章:

android - parse.com 调用 .save() 导致所有查询停止运行 Android

android - 如何对方法进行单元测试,当它在 android 中有处理程序时

java - 初学者 Java 多线程编程 : Scheduling Difference between Window and Mac

java - 使用 RecyclerView 的 asynctask 在 android 中下载图像

android - 强制门户出现需要什么响应?

android - 在 Jetpack Compose 中是否可以将背景图像添加到填充所有列的列(如填充颜色)?

java - 确保线程在完成某些任务时完成的最优雅的方法

c# - 如何在 C# 中正确实现可取消、长时间运行的线程?

java - 按特定值对 List 中的数据进行排序

android - AsynTask 中的文件类型错误