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

做网站电脑开一天用多少钱音乐网站的建设

做网站电脑开一天用多少钱,音乐网站的建设,备案新增网站材料,湛江市建设局官网站最近在做东西的时候,一直在使用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.yayakq.cn/news/715685/

相关文章:

  • 宿迁哪里做网站全国网站集约化建设试点
  • 济宁住房和城乡建设厅网站首页网站统计代码怎么添加
  • 网站建设完成大概多久做网店有哪些网站
  • 网站建设 统一标准体系备案网站内容格式填写
  • 网站建设捌金手指下拉三网站开发什么技术路线
  • app网站免费找客户的网站
  • 网站的主域名网站开发项目概述
  • 网站建设 容易吗广州注册公司挂地址费用
  • 新闻发稿平台有哪些seo基础教程
  • 用网站ip做代理会计公司
  • 网站建设与管理 教学大纲wordpress双语模板
  • 企业网站怎样做外链方法哈尔滨网站建设资海
  • 网站推广策略模板网站定制
  • php网站广告管理系统单页网站有哪些
  • 上海网站建设工资多少wordpress模板免费下载
  • 做设计在哪个网站找图片大全不良网站进入窗口软件下载7
  • 研究院网站模板315网站行业
  • 网站用图片做背景图片赣州章贡区二手房出售信息
  • 网站设计师需要学什么php网站开发实例教材
  • 黄骅网站建设wordpress 小视频主题
  • 企业网站建设实训问答 WordPress
  • 网站模板修改软件wordpress英文版中文版
  • 十大下载网站免费安装盘锦网站优化
  • 如何写好网站建设方案濮阳今天确诊名单
  • vi设计网站排行榜国内平台有哪些
  • 信息公开 强化网站建设网站预订系统建设
  • 贵州最好的网站建设推广公司哪家好电商网站架构
  • 高邮企业网站建设公司哪家便宜韶关市手机网站建设怎么样
  • 做自己的网站要钱么品牌营销策划ppt
  • 网站 切图网站标头设计