android中的异步任务与线程
在UI中,为了执行一些后台工作,我使用了一个单独的android中的异步任务与线程,android,multithreading,android-asynctask,Android,Multithreading,Android Asynctask,在UI中,为了执行一些后台工作,我使用了一个单独的线程。但正如其他人所建议的,我现在使用的是AsyncTask 线程和异步任务之间的主要区别是什么 在这种情况下,我应该使用线程还是异步任务?执行长时间运行或CPU密集型任务,基本上有两种方法:Java线程和Android的本机异步任务 两者都不一定比另一个好,但知道何时使用每个调用对于利用系统性能为您带来好处至关重要 将异步任务用于: 不需要下载大量数据的简单网络操作 可能需要几毫秒以上时间的磁盘绑定任务 将Java线程用于: 涉及中到大量数据的
线程
。但正如其他人所建议的,我现在使用的是AsyncTask
线程
和异步任务
之间的主要区别是什么
在这种情况下,我应该使用
线程
还是异步任务
?执行长时间运行或CPU密集型任务,基本上有两种方法:Java线程和Android的本机异步任务
两者都不一定比另一个好,但知道何时使用每个调用对于利用系统性能为您带来好处至关重要
将异步任务用于:
有关更多信息,请访问如果使用Java线程,则必须在自己的代码中处理以下要求: 如果将结果回发到主线程,则与主线程同步 用户界面 没有用于取消线程的默认值 没有默认的线程池 在Android中没有处理配置更改的默认设置
线程
- 长任务一般
- 通过thread.start()方法调用
- 从任何线程触发
- 在自己的线程上运行
- 手动线程管理/代码可能变得难以阅读
- 小任务必须与主线程通信
- 通过excute()方法调用
- 从主线程触发
- 在工作线程上运行
- 必须从主线程执行和创建
- 线程:
Thread
应用于将长时间运行的操作与主线程分离,以提高性能。但它无法优雅地取消,也无法处理Android的配置更改。您无法从线程更新UI
AsyncTask
可用于处理持续时间小于5ms的工作项。使用AsyncTask
,您可以更新UI,而不像java线程
。但许多长时间运行的任务会阻碍性能
除了这两种方法,你几乎没有其他选择
/及
有关更多详细信息,请参阅以下帖子:
请参见@webaldo。在我提到这一点时,这里他们给出了enter描述以及Asynctask和Thread之间的区别。我想知道在哪种情况下,例如网络连接、文件读取,我使用的是什么?。缩写:Thread