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点开润

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/700734.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vivado MIG ip核使用教程

Step 1 在ip catalog中搜索mig ip核并打开,检查硬件配置 Step 2 Step 3 选择对其他芯片类型的兼容性,若无此方面需求,可直接点击next Step 4 选择存储器类型 Step 5 配置DDR3芯片工作频率、用户时钟、mig ip核输入时钟、DDR3芯片类型…

《隐私计算简易速速上手小册》第2章:关键技术介绍(2024 最新版)

文章目录 2.1 同态加密2.1.1 基础知识2.1.2 主要案例:云计算数据分析2.1.3 拓展案例 1:医疗数据分析2.1.4 拓展案例 2:金融风险评估2.2 安全多方计算(SMC)2.2.1 基础知识2.2.2 主要案例:跨机构金融数据共享2.2.3 拓展案例 1:医疗研究合作2.2.4 拓展案例 2:跨国界数据交…

Echarts —— 关系图+路径图+散点图(动态箭头)

文章目录 1 效果预览2 实现代码 1 效果预览 可将以下代码复制到Echarts示例在线预览效果 2 实现代码 const categories [{name: 数据中心,symbol:path://M936.33 732.203c-9.872-10.814-23.349-17.123-37.953-17.778-14.849-0.451-28.613 4.383-39.427 14.255-0.215 0.195-0.…

【初始RabbitMQ】发布订阅的实现

发布确认原理 生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式,所有在该信道上面发布的消息都将会被指派一个唯一的 ID(从 1 开始),一旦消息被投递到所有匹配的队列之后,broker 就会发送一个确认给生产者(包含消息的…

Linux之ACL权限chmod命令

一. chmod命令 chmod命令来自英文词组change mode的缩写,其功能是改变文件或目录权限的命令。默认只有文件的所有者和管理员可以设置文件权限,普通用户只能管理自己文件的权限属性。 设置权限时可以使用数字法,亦可使用字母表达式&#xff0…

GO-ICP的使用(一)

一、代码下载以、修改以及使用 下载: 链接:yangjiaolong/Go-ICP: Implementation of the Go-ICP algorithm for globally optimal 3D pointset registration (github.com) 解压之后 : 首先visual studio项目,配置好PCL环境&…

更简单地介绍 CUDA

这篇文章是对 CUDA 的超级简单介绍,CUDA 是 NVIDIA 流行的并行计算平台和编程模型。我之前在2013年写过一篇文章《CUDA简单介绍》,多年来一直很受欢迎。但 CUDA 编程变得更加容易,GPU 也变得更快,所以是时候进行更新(甚…

SQL-Labs46关order by注入姿势

君衍. 四十六关 ORDER BY数字型注入1、源码分析2、rand()盲注3、if语句盲注4、时间盲注5、报错注入6、Limit注入7、盲注脚本 四十六关 ORDER BY数字型注入 请求方式注入类型拼接方式GET报错、布尔盲注、延时盲注ORDER BY $id 我们直接可以从界面中得知传参的参数为SORT&#x…

Yolo v9 “Silence”模块结构及作用!

论文链接:👿 YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information 代码链接:👿 https://github.com/WongKinYiu/yolov9/tree/main Silence代码 class Silence(nn.Module):def __init__(self):supe…

vue2和vue3对比(语法层面)

阅读文章你将收获: 1 了解不使用组件化工具时,vue在html是如何使用的 2 知道vue2的生命周期函数有哪些 3 知道如何在组件化开发中使用vue 4 大致了解了vue2和vue3在使用上什么不同 最后:vue2和vue3除了下面我列出的有差异化的地方&…

day41打卡

day41打卡 46. 携带研究材料(第六期模拟笔试) 状态表示 ​ 二维:dp[i] [j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。 一维: ​ dp[j]表示:容量为j的背包&a…

模型 HBG(品牌增长)

系列文章 分享 模型,了解更多👉 模型_总纲目录。品牌增长法。 1 HBG(品牌增长)模型的应用 1.1 江小白使用HBG模型提高品牌知名度和销售额 选择受众市场:江小白的目标客户是年轻人,他们喜欢简单、时尚的产品。因此,江…

数据结构D4作业

1.实现单向循环链表的功能 loop.c #include "loop.h" loop_p create_loop() { loop_p H(loop_p)malloc(sizeof(loop)); if(HNULL) { printf("创建失败\n"); return NULL; } H->len0; H->nextH; ret…

基于ElementUI封装省市区四级联动下拉选择

基于ElementUI封装的省市区下拉级联选择 效果 数据 最新省市区JSON数据获取:https://xiangyuecn.github.io/AreaCity-JsSpider-StatsGov/ 参数说明 参数说明inputNumShow下拉框的数量,最多4个defaultAddress默认显示省市区 例:[‘安徽’, …

【C++初阶】--类和对象(下)

目录 一.const成员 1.权限放大问题 2.权限的缩小 二.再谈构造函数 1.构造函数体赋值 2.初始化列表 (1)概念 (2)使用 ①在对象实例化过程中,成员变量先依次进行初始化 ②再进行函数体内二次赋值 3.explicit关键字 (1)C为什么要存在自动隐式类型转换…

算法打卡day1|数组篇|Leetcode 704.二分查找、27.移除元素

数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合,可以方便的通过下标索引的方式获取到下标下对应的数据。 1.数组下标都是从0开始的。 2.数组内存空间的地址是连续的。 正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添…

【深度学习笔记】3_5 图像分类数据集fashion-mnist

注:本文为《动手学深度学习》开源内容,仅为个人学习记录,无抄袭搬运意图 3.5 图像分类数据集(Fashion-MNIST) 在介绍softmax回归的实现前我们先引入一个多类图像分类数据集。它将在后面的章节中被多次使用&#xff0c…

《Docker 简易速速上手小册》第1章 Docker 基础入门(2024 最新版)

文章目录 1.1 Docker 简介与历史1.1.1 Docker 基础知识1.1.2 重点案例:Python Web 应用的 Docker 化1.1.3 拓展案例 1:使用 Docker 进行 Python 数据分析1.1.4 拓展案例 2:Docker 中的 Python 机器学习环境 1.2 安装与配置 Docker1.2.1 重点基…

消息队列-RabbitMQ:发布确认—发布确认逻辑和发布确认的策略

九、发布确认 1、发布确认逻辑 生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式,所有在该信道上面发布的消息都将会被指派一个唯一的 ID (从 1 开始),一旦消息被投递到所有匹配的队列之后,broker 就会发送一个确认给…

Python基础教程——17个工作必备的Python自动化代码

您是否厌倦了在日常工作中做那些重复性的任务?简单但多功能的Python脚本可以解决您的问题。 引言 Python是一种流行的编程语言,以其简单性和可读性而闻名。因其能够提供大量的库和模块,它成为了自动化各种任务的绝佳选择。让我们进入自动化…