当前位置: 首页 > news >正文

做中学网站下载爱城市网app官方网站

做中学网站,下载爱城市网app官方网站,南京医院网站建设方案,网站开发基本步骤最近在做东西的时候,一直在使用RxJava框架,越是深入了解RxJava,就越觉得这个框架威力实在是太大了。好东西不能一个人独自享受,后面几篇文章我会由浅入深来介绍一下RxJava的使用方法,相信看完之后,你会跟我一样逐渐喜欢上这个“威力无比”的武器! 那么,RxJava到底是什…

最近在做东西的时候,一直在使用RxJava框架,越是深入了解RxJava,就越觉得这个框架威力实在是太大了。好东西不能一个人独自享受,后面几篇文章我会由浅入深来介绍一下RxJava的使用方法,相信看完之后,你会跟我一样逐渐喜欢上这个“威力无比”的武器!

那么,RxJava到底是什么?使用RxJava到底有什么好处呢?其实RxJava是ReactiveX中使用Java语言实现的版本,目前ReactiveX已经实现的语言版本有:

  • Java: RxJava
  • JavaScript: RxJS
  • C#: Rx.NET
  • C#(Unity): UniRx
  • Scala: RxScala
  • Clojure: RxClojure
  • C++: RxCpp
  • Ruby: Rx.rb
  • Python: RxPY
  • Groovy: RxGroovy
  • JRuby:RxJRuby
  • Kotlin: RxKotlin

可以看出ReactiveX在开发应用中如此的火爆。那到底什么是ReactiveX呢?简单来说,ReactiveX就是”观察者模式+迭代器模式+函数式编程”,它扩展了观察者模式,通过使用可观察的对象序列流来表述一系列事件,订阅者进行占点观察并对序列流做出反应(或持久化或输出显示等等);借鉴迭代器模式,对多个对象序列进行迭代输出,订阅者可以依次处理不同的对象序列;使用函数式编程思想(functional programming),极大简化问题解决的步骤。

RxJava的基本概念

RxJava最核心的两个东西就是Observables(被观察者,也就是事件源)和Subscribers(观察者),由Observables发出一系列的事件,Subscribers进行订阅接收并进行处理,看起来就好像是设计模式中的观察者模式,但是跟观察者模式不同的地方就在于,如果没有观察者(即Subscribers),Observables是不会发出任何事件的

由于Observables发出的事件并不仅限于一个,有可能是多个的,如何确保每一个事件都能发送到Subscribers上进行处理呢?这里就借鉴了设计模式的迭代器模式,对事件进行迭代轮询(next()、hasNext()),在迭代过程中如果出现异常则直接抛出(throws Exceptions),下表是Observable和迭代器(Iterable)的对比:

事件(event)迭代器(Iterable)Observable
接收数据T next()onNext(T)
发现错误throws ExceptiononError(Exception)
迭代完成!hasNext()onCompleted()

与迭代器模式不同的地方在于,迭代器模式在事件处理上采用的是“同步/拉式”的方式,而Observable采用的是“异步/推式”的方式,对于Subscriber(观察者)而言,这种方式会更加灵活。

开始准备 Hello World!

说了那么多概念性的东西,可能大家会一头雾水,下面我们就使用获取天气预报的例子来说明吧。

准备工作

  1. 获取天气预报,我们就使用新浪提供的API接口吧,地址如下:
    http://php.weather.sina.com.cn/xml.php?city=%B1%B1%BE%A9&password=DJOYnieT8234jlsK&day=0
    其中,city后的城市转码。
    Password固定
    Day为0表示当天天气,1表示第二天的天气,2表示第三天的天气,以此类推,最大为4

  2. 为了简化代码,使用Retrolamda框架(有时间后面会专门写文章介绍),需要安装JDK8,并且环境变量中需要增加“JAVA8_HOME”变量,如图:
    这里写图片描述

  3. Android Studio版本就用最新的1.2版本+Gradle1.0.0吧。使用Eclipse ADT的朋友,建议赶紧换成Android Studio吧,在android开发上,Android Studio比Eclipse ADT实在是不可同日而语。

环境搭建

首先在Android Studio中新建一个项目,然后修改Project级的build.gradle如下:

buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:1.0.0'classpath 'me.tatarka:gradle-retrolambda:3.0.1'}
}allprojects {repositories {jcenter()}
}

module级的build.gradle修改如下:

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'retrolambda {jdk System.getenv("JAVA8_HOME")oldJdk System.getenv("JAVA6_HOME")javaVersion JavaVersion.VERSION_1_6
}android {compileSdkVersion 21buildToolsVersion "21.1.2"compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}defaultConfig {applicationId "com.example.hesc.weather"minSdkVersion 10targetSdkVersion 21versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}
}dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])compile 'com.android.support:appcompat-v7:22.0.0'compile 'io.reactivex:rxandroid:0.24.0'
}tasks.withType(JavaCompile){options.encoding="utf-8"
}

开发代码

首先新建布局文件activity_main.xml如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
http://www.ds6.com.cn/news/38334.html

相关文章:

  • 做网站的html框架百度快速收录教程
  • 做网站放到百度上需要什么网络营销推广方案怎么写
  • 撰写网站策划书search搜索引擎
  • 大型资讯门户网站怎么做排名百度框架户开户渠道代理
  • 网站备案需要多长时间佛山快速排名seo
  • 做网站是用wordpress还是DW微信营销软件手机版
  • 站点推广百度一下了你就知道官网
  • 加强制度建设 信息公开 网站 专栏百度文库个人登录入口
  • 哪里有免费的网站自己做seo攻略
  • 公司网站app怎么做查询网站注册信息
  • wordpress网站基础知识百度文库网页版登录入口
  • 企业网站备案需要法人拍照吗十大广告公司排名
  • dedecms免费网站模板汕头seo按天付费
  • 可以做直播源的佛教网站怎么让百度收录
  • 北京网站建设 云智互联营销案例最新
  • 平面设计接单平台app深圳百度seo哪家好
  • 沈阳商城网站建设网页制作用什么软件做
  • 网站平台需要做无形资产吗 怎么做推广软文范文
  • 文明网站建设情况报告百度品牌专区怎么收费
  • 视觉灵动 wordpress云南seo网站关键词优化软件
  • php做网站需要的技术网站的优化seo
  • 牡丹江宁波seo关键词排名
  • 建设网站需要先构建好模型seo广州工作好吗
  • 泰州seo外包湖南专业的关键词优化
  • 做招聘网站毕业设计网络营销常见的工具
  • ios网页游戏seo网站优化方案案例
  • 网站后台登录系统是怎么做的优化防控举措
  • 青岛城阳做网站数据分析培训班
  • 电商网站建设方案软文推广的优点
  • 惠州网站建设领头羊东莞疫情最新消息今天