在安卓上使用RxJava.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在安卓上使用RxJava

在安卓上使用RxJava 如果做过Android(和Java)的开发,很有可能已经听说过RxJava了。RxJava是由Netflix开发的响应式扩展(Reactive Extensions)的Java实现。引用 HYPERLINK /en-us/data/gg577609.aspx \t _blank MSDN上对它的定义,Reactive Extensions是这样一个第三方库:它结合了可观察集合和LINQ式查询以达到异步和基于事件的编程效果。Netflix将这个库托管到了Github上,支持Java6以上的版本并且使它可以用于Android App开发。 本篇是介绍RxJava和Android的系列文章的第一篇,将会介绍如何在Android中使用RxJava observables(基于Square的Retrofit组件)创建REST API客户端。 我们从添加所需的库文件开始。如果你用Maven的话,只需将下面的dependencies(依赖库)加到pom.xml中即可: 1 2 3 4 5 6 7 8 9 10dependency ????groupIdcom.squareup.retrofit/groupId ????artifactIdretrofit/artifactId ????version1.2.2/version /dependency dependency ????groupIdflix.rxjava/groupId ????artifactIdrxjava-android/artifactId ????version0.14.6/version /dependency在本文中,我们将用气象地图开放平台(OpenWeatherMap) API作为演示示例。 HYPERLINK / \t blank_ OpenWeatherMap是一个免费的天气数据API,非常易于配置和使用,调用时只需传入位置信息(城市名或者是地理坐标)作为参数即可,具体效果请参见这个 HYPERLINK /data/2.5/weather?q=Budapest,hu \t _blank 示例。它默认传输的是JSON格式的数据(但也可以配置为XML或HTML格式)。精度和温度单位也是可以配置的,更多详情请看 HYPERLINK /API \t _blank 这里。 通常要实现调用一个API需要如下这几个步骤(每个步骤都有一堆公式化代码): 创建所需的模型类(必要时,添加上注解)。 实现请求—回应管理的网络层代码,并带错误处理。 用后台线程实现请求调用(一般是用异步任务的形式实现),用一个回调函数(Callback Function)来实现在UI线程上呈现回应信息。 创建模型类 第一步我们可以依靠一些类似 HYPERLINK / \t _blank jsonschema2pojo的JSON-POJO生成工具(半)自动化完成。OpenWeather API的模型类如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57public class WeatherData { ? ????public Coordinates coord; ????public Local sys; ????public ListWeather weathers; ????public String base; ????public Main main; ????public Wind wind; ????public Rain rain; ????public Cloud clouds; ????public long id; ????public long dt; ????public String name; ????public int cod; ? ????public static class Coordinates { ????????public double lat; ????????public double lon; ????} ? ????public static class Local { ????????public String country; ????????public long sunrise; ????????public long sunset; ????} ? ????public static class

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档