Android 天气APP(三十五)修复BUG、升级网络请求框架

    • 一、显示bug
  • 二、数据访问bug

  • 三、程序崩溃

  • 四、小米8上的崩溃

前言

===============================================================

之前在GoodWeather2.6的时候陆陆续续出现了一些小bug,只不过是一句话就能改好,所以就没有单独写一篇文章来说明,不过当问题积累的多了之后,就有这个必要了。当然这些问题很多并不是我发现的,而是细心的读者发现的。那就不说废话了,进入正题。

正文

===============================================================

这些问题的出现一般来说是我当时写代码没有注意到的细节,如果你是复制粘贴我的代码可能也会出现同样的问题。

一、显示bug


这个问题由一个读者发现后反馈给我,在之前的代码中,MainActivity中的空气质量显示,我两个TextView显示了一个值,被指出,然后我就马上改了,文章也做了更新。

在这里插入图片描述

这个图就是github上的修改记录,红色的代表去掉的代码,绿色代表增加或修改的代码。

在这里插入图片描述

然后是方法名的修改,在更多生活质量页面,所写的方法名不符合当前所在页面,容易造成误导,因此修正。

这个bug是在2021年4月1号的时候改的。

还有一个显示bug,是在查询城市失败的时候没有关闭加载弹窗,导致无法操作页面。修改代码如下:

在这里插入图片描述

二、数据访问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来进行。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

相信它会给大家带来很多收获:

img

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

  • 无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,这四个字就是我的建议!!!
  • 我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。

当我们在抱怨环境,抱怨怀才不遇的时候,没有别的原因,一定是你做的还不够好!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

实费了很大力,这四个字就是我的建议!!!

  • 我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。

当我们在抱怨环境,抱怨怀才不遇的时候,没有别的原因,一定是你做的还不够好!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值