《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
完整开源地址:https://docs.qq.com/doc/DSkNLaERkbnFoS0ZF
然后是方法名的修改,在更多生活质量页面,所写的方法名不符合当前所在页面,容易造成误导,因此修正。
这个bug是在2021年4月1号的时候改的。
还有一个显示bug,是在查询城市失败的时候没有关闭加载弹窗,导致无法操作页面。修改代码如下:
在之前的网络请求中,每一次请求都会执行两次,这个问题由一个读者发现,和我反应出来,我更换了网络框架,其实就是在原来的基础上增加了RxJava的使用,新的网络框架在源码中的mvplibrary模块的newnet包下。
这个框架其实我单独写过一篇文章来介绍,文章地址如下:
Android OkHttp+Retrofit+RxJava搭建网络访问框架(含源码)
想要详细了解里面过程的可以看看,不打算了解的,直接复制代码到使用的地方就可以了,针对于这个框架来说,改变的地方相对于原来的框架有一些区别,但总体区别不大,就拿主页面的请求来说明一下:
在新的框架中是由NetworkApi去构建网络请求的,在之前是通过ServiceGenerator,这里就要做修改。
新框架需要在Application中进行一个初始化,这和之前有所不同,在app模块下新建一个NetworkRequiredInfo类,实现INetworkRequiredInfo,代码如下:
/**
-
网络访问信息
-
@author llw
*/
public class NetworkRequiredInfo implements INetworkRequiredInfo {
private Application application;
public NetworkRequiredInfo(Application application){
this.application = application;
}
/**
- 版本名
*/
@Override
public String getAppVersionName() {
return BuildConfig.VERSION_NAME;
}
/**
- 版本号
*/
@Override
public String getAppVersionCode() {
return String.valueOf(BuildConfig.VERSION_CODE);
}
/**
- 是否为debug
*/
@Override
public boolean isDebug() {
return BuildConfig.DEBUG;
}
/**
- 应用全局上下文
*/
@Override
public Application getApplicationContext() {
return application;
}
}
然后在WeatherApplication中完成初始化。
还是一个地方就是ApiService的修改,之前用的是Retrofit2的Call来进行回调,现在是使用RxJava的Observable来进行。
因此每一个接口都需要更改。下面就用一个最简单的页面来说明:欢迎页面。
SplashContract,首先是这个页面的订阅器。
这是一个获取App版本号的请求,修改的内容如上图所示。
回调接口如下图:
页面中使用。
那么相对于这一个接口,其他的接口修改方式一样,如果还不清楚可以查看我的源码。在我修改网络框架之前,我特意保存了一个之前的未修改网络框架的源码。之前的源码地址如下:GoodWeather