几个常用的异步框架和网络访问框架区分对比
来源:互联网 发布:福建安溪县怎么样知乎 编辑:程序博客网 时间:2024/04/29 06:34
Part1:
由于在我们的程序中,不允许一些耗时的任务在主线程中出现,主要是为了防止阻塞主线程而导致的Anr(Application not Responding),一些耗时任务主要包括:
网络访问,缓慢的磁盘操作,比较耗时的算法
当我们的主线程在一定时间里对某一事件的处理超过一定时间后会主线程会崩溃报ANR,
通常的解决方案:采用子线程技术来将耗时任务与主线程进行脱离
1、handler机制
只需要将UI更新参数在子线程中使用sendMessage发送到定义好的Handler里的handleMessage里既可以在主线程中更新UI(Handler实现了从子线程到主线程之间的跳转)
2、runOnUiThread方法
使用这个方法,既可以使得当前主线程获取cpu资源,从而进行UI的更新(至于如何从子线程中返回数据,方法很多,比如使用接口来回调获取参数)
3、使用我们熟悉的AsyncTask类
AsyncTask使用详解和源码分析
Part2:网络访问
大家都熟知的右HttpClient和HttpUrlConnection两种方式,当然还有像Volley和OkHttp以及AsyncHttpClient
针对前两种最原始基础的方式,是不具备异步处理能力的,也就是需要我们配合part1里的异步处理框架来使用,否则就只能接受ANR这赤裸裸的尴尬
Volley则是具备了异步访问的能力而且访问结束的回调方法是处于主线程中的,这样就可以直接脱离异步访问框架来单独使用了(还能够替代Universal-Image-Loader异步加载图片喔)Volley使用详解
AsyncHttpClient则是对HttpClient的一种异步封装,它对于Volley的一个缺陷就是回调方法依然处于子线程中,我们依然需要使用part1里的异步框架来解决问题
- 几个常用的异步框架和网络访问框架区分对比
- tornado web异步框架 和 nodejs 的异步对比
- 几个网络访问框架的post请求使用方式
- android 常用的几个框架
- 几个iOS REST访问和界面的开发框架
- Java常用的日志框架对比和深入分析
- Java常用的日志框架对比和深入分析
- 网络请求框架对比
- 网络请求框架对比
- 网络请求框架对比
- 库和框架的概念区分
- Android异步访问网络框架android-async-http使用
- 访问网络的框架(Volley和OkHttp3)使用
- android 常用的网络框架
- Android 常用的网络框架
- Android 常用的网络框架
- 常用几个框架比较
- 对比Tornado和Twisted两种异步Python框架
- P2P Streaming的发展历程
- Java 6 JVM参数选项大全(中文版)
- 死锁的四个必要条件
- SQLite Pragma语法
- Android实现XML解析技术
- 几个常用的异步框架和网络访问框架区分对比
- 一年android开发经验的新起航
- OAF 汇总行的做法
- Java之cookie和session(转)
- 第一篇博客
- QQ登陆之后找不到图标了
- Linux xargs命令
- 微软100题(48)循环数组的查找
- 客户端宕机致命问题