asyncTask了解简记
来源:互联网 发布:mysql优化查询速度 编辑:程序博客网 时间:2024/06/07 08:12
今天就在open上看了两个文章,一个是刚刚提到的“Android移动终端数据同步技术的一次了解”(http://blog.csdn.net/appleliguo/article/details/7460138)
还有一个是关于asyncTask的。
由于android应用时必须遵守单线程模型的原则:Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则:1.不要阻塞UI线程2.确保只在UI线程中访问Android UI工具包。
那么为了不阻塞UI线程,我现在一般都用handle来解决,就是新启一个线程专门来处理一些需要更新UI的逻辑,但是缺陷有:
第一,线程的开销较大,如果每个任务都要创建一个线程,那么应用程序的效率要低很多;第二,线程无法管理,匿名线程创建并启动后就不受程序的控制了,如果有很多个请求发送,那么就会启动非常多的线程,系统将不堪重负。
AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦。阅读AsyncTask的源码可知,AsyncTask是使用java.util.concurrent框架来管理线程以及任务的执行的,concurrent框架是一个非常成熟,高效的框架,经过了严格的测试。这说明AsyncTask的设计很好的解决了匿名线程存在的问题。
AsyncTask最佳实践和使用场景注意:
使用AsyncTask处理联网,播放大尺寸媒体文件等较为耗时的工作,不但执行效率高,也可以节省代码;
AsyncTask不能完全取代线程,在一些逻辑较为复杂或者需要在后台反复执行的逻辑就可能需要线程来实现了。
意思就是说逻辑较为简单且每次只执行单次的就可以使用,可以降低线程开发引起的复杂度
参考文档:
http://chengbs.iteye.com/blog/1151838
http://wang-peng1.iteye.com/blog/553066
- asyncTask了解简记
- 了解AsyncTask异步任务
- AsyncTask方法了解
- 你真的了解AsyncTask?
- 你真的了解AsyncTask?
- 你真的了解AsyncTask?
- 你真的了解AsyncTask?
- 对AsyncTask的深入了解
- 你真的了解AsyncTask?
- 简记
- 简记
- 简记
- 简记
- 简记
- Android AsyncTask详解,你真的了解AsyncTask?
- 你真的了解AsyncTask吗?AsyncTask源码分析
- 简明了解Android中的AsyncTask异步操作
- 从源码的角度了解AsyncTask
- ie中 https(SSL)不能下载问题解决方案 - javaee
- UltraEdit / UEStudio 无法打开弹出错误提示(An error has occured.)
- Windows Phone开发学习之三——建立第一个WP7项目
- NXP-LPC1768起步之开发环境搭建与GPIO
- Apache Common Configuration--超方便的配置文件读取解析
- asyncTask了解简记
- n个骰子的点数和
- android 开发环境配置
- java Class object
- hdu 1164 Eddy's research I (数论)
- hibernate openSession和getCurrentSession
- Linux音频编程指南
- 对时间管理妙招的评价
- C#正则表达式快速入门