Android 异步处理方式简述

来源:互联网 发布:淘宝恶意退款卖家报警 编辑:程序博客网 时间:2024/06/14 10:37

 异步处理对于Android 开发来说是一个很重要的组成部分,不管是请求服务器,还是其它耗时工作都要用到异步处理的方式,用好它可以让程序运行更加流畅,我就目前项目使用的以及其它相关资料总结一下都有哪些方式,后续持续更新,以后再用到时可以择优使用,并对比优缺点,写出一些自己的心得。

首先总结一下有哪些场景需要用到异步处理:
1.请求服务器获取数据后更新UI的场景

2.连续下载多个文件后更新进度显示的场景

3.批量下载大量图片或者文件的场景

1. Thread +handler 的方式,适合用在场景1

2.AsyncTask 这种方式本身封装了一些进度控制的方法,适合用在场景2,当然场景1也可以用

3.ExecutorService+handler 方式适合第三种场景可以复用线程,线程开销很大大家都知道,所以大量下载需要用到这种,而且方便的控制线程结束

4.比较优秀的开源框架有RxJava和RxAndroid,即使在复杂的异步处理,也能让逻辑很清晰

其实有时候最难得还是线程的控制,每一个任务都处理的很得当

5.RxJava要比EventBus的应用更广泛,EventBus仅仅是作为一种消息的传递工具,但是RxJava里面几乎可以做任何事情。

如果是Android开发的话,可以使用RxAndroid,这是对RxJava的一个扩展,结合sqare公司的retrofit可以很轻松的完成网络的访问。

我们知道,在Android中异步操作一般使用AsycTask来完成,但是AsycTask有很多缺点,如不能方便的终止任务的执行等。

RxAndroid完全可以替代AsycTask来完成各种异步操作,而且还有BindActivity和BindFragment方法,你根本不需要考虑异步操作时的Activity和Fragment的生命周期问题,还有更加强大的的链式调用,可以使程序很简洁。

以上,推荐使用RxAndroid