【Android学习】使用聚合数据的接口进行的RxAndroid学习

最近学习RxJava,一直在看大神的文章,分析。

还是要实际敲上一敲印象才会深刻,才能更了明白Rx的机制。

数据源是聚合数据的免费Api。

配合Retrofit 完成数据请求

例子比较简单,没事使用什么复杂的操作符。

就是简单的网络数据获取。

一些常用的操作符大家可以参考官方的文档说明:

ReactiveX/RxJava文档中文版

先看下运行截图:

Api可以去聚合数据官网申请。

这几个都是GET请求,所以写法都一样:

创建接口:

public interface WeatherApi {

    @GET("/onebox/weather/query?")
    Observable<Weather> getWeatherInfo(@Query("cityname") String phone,
                                       @Query("key") String key);
}

创建Retrofit:

public static WeatherApi getWeatherApi() {
    if (weatherApi == null) {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://op.juhe.cn")
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        weatherApi = retrofit.create(WeatherApi.class);
    }
    return weatherApi;
}

在Activity中订阅触发代码:

RxView.clicks(btn_check).throttleFirst(3, TimeUnit.SECONDS)
        .subscribe(new Action1<Void>() {
            @Override
            public void call(Void aVoid) {
                NetWork.getWeatherApi()
                        .getWeatherInfo(et_city_name.getText().toString(), API_KEY)
                        .subscribeOn(Schedulers.newThread())
                        .observeOn(AndroidSchedulers.mainThread())
                        .subscribe(new Action1<Weather>() {
                            @Override
                            public void call(Weather weather) {
                                setDispaly(weather);
                            }
                        });
            }
        });

例子可以在git上下载参考。

https://github.com/VongVia1209/RxAndroid_Demo_With_jvhe

时间: 2024-10-19 10:14:52

【Android学习】使用聚合数据的接口进行的RxAndroid学习的相关文章

使用聚合数据的接口进行的RxAndroid学习

Demo数据源是聚合数据的免费Api,地址:https://www.juhe.cn/ 配合Retrofit 完成数据请求 例子比较简单,没事使用什么复杂的操作符. 就是简单的网络数据获取. 一些常用的操作符大家可以参考官方的文档说明: ReactiveX/RxJava文档中文版 关于RxJava入门,我也是新手,不敢妄言,给大家分享分享网上流传的大神博客: 扔物线大大的: 给 Android 开发者的 RxJava 详解 hi大头鬼hi: 深入浅出RxJava(一:基础篇) 深入浅出RxJava

聚合数据 --API 股票接口

<!--?php // +---------------------------------------------------------------------- // | JuhePHP [ NO ZUO NO DIE ] // +---------------------------------------------------------------------- // | Copyright (c) 2010-2015 http://juhe.cn All rights reser

使用聚合数据API查询快递数据-短信验证码-企业核名

有位朋友让我给他新开的网站帮忙做几个小功能,如下: 输入快递公司.快递单号,查询出这个快件的所有动态(从哪里出发,到了哪里) 在注册.登录等场景下的手机验证码(要求有一定的防刷策略) 通过输入公司名的关键词,查看这个公司是否已经注册.法人信息.有类似名称的公司等等 并且可以用的接口.文档都提供给我了.其中需求 1.2,都通过 聚合数据 这家网站提供的接口实现:需求 3 通过 云聚数据 来实现. 本项目的文件 因为朋友的网站是用 ThinkPHP 写的,为了保持将来代码的兼容,这三个功能也用 Th

聚合数据iOS SDK 全国加油站[实时油价]演示示例

1,将聚合数据SDK(JuheApis.framework)添加到你的程序中来,SDK依赖的包包括: 2,在聚合SDK Framework的JHSDKAPIPath.h文件中找到快递查询接口宏,以及字典参数 /*** 全国加油站[实时油价] ***//**@brief 全国加油站[实时油价] -> 按城市检索加油站@param city string 必填 城市名urlencode utf8;@param page int 非必填 页数,默认1*/#define kJHAPIS_LIFE_OIL

聚合数据iOS SDK 全国天气预报演示示例

1,将聚合数据SDK(JuheApis.framework)添加到你的程序中来,SDK依赖的包包括: 2,在聚合SDK Framework的JHSDKAPIPath.h文件中找到快递查询接口宏,以及字典参数 /*** 全国天气预报 ***/ /**@brief 全国天气 -> 根据城市名/id查询天气@param cityname string 必填 城市名或城市ID,如:"苏州"@param dtype string 必填 返回数据格式:json或xml,默认json@para

聚合数据iOS SDK 全国车辆违章 演示示例

1,将聚合数据SDK(JuheApis.framework)添加到你的程序中来,SDK依赖的包包括: 2,在聚合SDK Framework的JHSDKAPIPath.h文件中找到快递查询接口宏,以及字典参数 /**@brief 车辆违章查询--1.获取支持城市接口 */#define kJHAPIS_LIFE_WZ_CITYS @"juhe.apis.wz.citys" //1.获取支持城市接口 /**@brief 车辆违章查询--2.请求违章查询接口 */#define kJHAPI

聚合数据iOS SDK 快递查询演示示例

1,将聚合数据SDK(JuheApis.framework)添加到你的程序中来,SDK依赖的包包括: 2,在聚合SDK Framework的JHSDKAPIPath.h文件中找到快递查询接口宏,以及字典参数 /*** 常用快递 ***//**@brief 常用快递 -> 常用快递查询API@param com string 是 需要查询的快递公司编号@param no string 是 需要查询的订单号@param dtype string 否 返回数据的格式,xml或json,默认json*/

Android 学习笔记之数据存储SharePreferenced+File

学习内容: Android的数据存储.... 1.使用SharedPreferences来保存和读取数据... 2.使用File中的I/O来完成对数据的存储和读取...   一个应用程序,经常需要与用户之间形成交互...需要保存用户的设置和用户的数据信息...这些都离不开数据的存储...Android的数据采用五种方式来进行存储...在这里就先介绍两种存储方式... 1.使用SharedPreferences存储数据...   对于软件配置参数的保存,Windows系统采用ini文件来进行保存,

Android开发学习笔记:数据存取之SQLite浅析

一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl.PHP.Java.C++..Net等,还有ODBC接口,同样比起 Mysql.PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的