部分设计参考xcc3641的开源项目SeeWeather,在此表示感谢!
第一次开始这个项目是2014年4月份,我还在大二的时候,当时有一个程序设计实践课,想着简单点就选了天气预报这个题目,时隔两年又重新拾起,给它脱胎换骨,就是想拿他作为一个学习新知识的实战项目,期间也做过改动,比如曾经把网络请求模块从android-async-http改为Volley。
注意:隐私相关的key我没有提交,clone后需要自行申请和风天气和bmob的key才能运行,其他key可直接忽略。
小马天气是一款开源Android天气信息查询软件。
v 2.1
v 2.0
v 1.5
v 1.4
fir.im:http://fir.im/ponyweather
应用宝:http://android.myapp.com/myapp/detail.htm?apkName=me.wcy.weather
网络请求RxJava+Retrofit
private void fetchDataFromNetWork(final CityEntity city) {
Api.getIApi().getWeather(city.name, ApiKey.HE_KEY)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.filter(new Func1<WeatherData, Boolean>() {
@Override
public Boolean call(final WeatherData weatherData) {
boolean success = weatherData.weathers.get(0).status.equals("ok");
return success;
}
})
.map(new Func1<WeatherData, Weather>() {
@Override
public Weather call(WeatherData weatherData) {
return weatherData.weathers.get(0);
}
})
.doOnNext(new Action1<Weather>() {
@Override
public void call(Weather weather) {
mACache.put(city.name, weather);
SystemUtils.saveRefreshTime(WeatherActivity.this);
}
})
.subscribe(new Subscriber<Weather>() {
...
updateView(weather);
...
});
}
热门源码