ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Android进阶之旅(第5天)

2026/9/19 14:33:14 拓冰建站 浏览量
Android进阶之旅(第5天)

充实的一天又过去了,今天真的好冷啊,我们这里雪很大,早上最傻逼的决定就是穿了一个短的棉袜出来,漏脚踝,冷成傻子

接下来老规矩,看下昨天计划的完成情况:

今日计划:

1.过bug

2.看CameraX的文档

3.搞懂Glide加载图片闪烁的问题

除了2,都完成了

没看2的原因是因为去看毕设了,然后今天是发布日,结果推到明天了(明天也够呛)

因为临近发布,还是多帮点忙,虽然帮不上啥忙,但还是尽点力,哪怕是多沟通一点呢

上午主要是看bug,主要是解决了一个图片展示过小的bug(另一个机型说展示不下)

然后因为马上发布了,就把之前努力的记录(也就是工作沟通记录)和自己解决的bug着重看了看

下午核心是处理了一个模拟器音频播放回退的问题,最终把问题定位到是底层service(为了解决这个问题看了好多文章,发现好多大佬,下面是对我最有帮助的一个文章):

Android MediaPlayer播放器暂停3秒后恢复播放时视频会倒退几秒才开始播放问题源码分析和解决方案_音频暂停后恢复会后退1s吗-CSDN博客

这个大佬发了好多关于底层的framework代码,高深的很,感觉好厉害

然后是解决了一个Toolbar中的箭头与title太远的bug,用的是这个属性:

app:contentInsetStartWithNavigation="0dp"(其实是前辈告诉我的)

相关文章:解决Toolbar的NavigationIcon和Title间距离过长的问题 - 简书

其实更多的是看代码和思考,甚至对RxJava的理解更深了

比如有一句代码:.map(time -> MusicPlayer.position())

time是long型,后面的那个是个方法,这是什么狗屁map

问了另一个前辈,给我解释这相当于传了个空值,也就是直接拿后面方法返回的值,time并没有用上

工作上更多是沟通和研究,真写代码也轮不上我(我写的也很菜)

然后就是忙里偷闲搞了会毕设,直接把今天的git记录粘过来:

新增noteBook修改已添加数据(pocketBook未处理,而且还存在一个小bug)  2024.02.21  30 minutes ago
新增noteBook修改已添加数据(pocketBook未处理,而且还存在一个小bug)  2024.02.21  31 minutes ago
fix:share异常  2024.02.21 50 minutes ago
fix:notebook删除数据无效 2024.02.21 Today 17:53
NoteBook暂时不用Glide加载图片(会出现bug,正在找原因) 2024.02.21  Today 11:26

第一个不用解释了,第二个notebook删除数据无效这个是纯纯狗屎bug,基本上用完了我一天的空闲时间

这个bug按我解决的路程给大家讲一下,他真的巨臭

首先我发现删除数据无效,第一时间打断点看哪出现了问题

首先定位到的是最后selectList返回的是0

我就在selectListadd和remove的时候加上了debug

结果直接闪退了

不用看肯定是空指针

于是开始定位,你看下我打的debug就知道断了多久了:

当然log是比较后的事了,最开始用的debug

debug到id是-1,position是正常的,我直接人懵了

自己用手机测的时候发现切换ViewPager的时候recycView位置变换了

我直接把Glide改回去,果然没bug了(后来还是有,可能这个时候已经出问题了哈哈哈)

然后我一猜肯定是position改变导致id变了,因为哪个positiion一直给我爆红,说什么会变

我直接出手,把position都改为了getAdapterPosition

我信心满满的去测,还是有问题

我心想可能是selectMode的问题

就把Pause后的exit去掉了(因为可能是还没传list就exit了)

(我写文章的时候察觉到还没给他改回来哈哈哈,改回去)

我冷静下来了,于是就按上面那个图那样打了一堆Log

定位到,删除的时候传过去的playList是空的

但是我又怀疑是recycleViewAdapter初始化覆盖了?

又是我去看相关部分的代码,结果没问题

那我只能接着看Log,Log定位到selectList为空

我害怕是传的时候有问题,就又打了个:

果然传的时候没问题(真谨慎哈哈)

那么就确定是recycleViewAdapter的问题

接着定位,发现selectList每次改的时候还没问题,到最后return就gg了

于是我直接吧他的初始化加了判空,只给他初始化一次

你还别说,这一改问题真没了(虽然我已经不确定是不是这里改好了,不过按我的理解应该是对的)

之后就是修复了share的异常然后加了一个更改数据的功能(曾经对我遥不可及,现在也就撒撒水)

但是还有一点bug,就留到明天fix

那么定下明天计划:

1.帮忙处理bug(虽然帮不上啥忙)

2.加好更改数据的功能

3.看文章或者文档(暂时未定)

还有昨天满心欢喜的回去看BLG,结果被干碎,还是有点失落的

不过马上就可以回学校住了,能见室友了(虽然只有晚上和周末)

那么还有半个小时左右,看看晚上吃啥,再看会文章,8点开润

还是老规矩,祝大家享受自己的一天