精华内容
下载资源
问答
  • ![图片说明](https://img-ask.csdn.net/upload/201812/13/1544684490_246531.png)
  • 接下来,我就得追踪下这个问题了,开始时我几乎就一口咬定是接口返回的有问题,由于前几次后端没有日志,好像之前的反馈就那么过去了,直到后面又出现一次重复笔记的问题,这次是公司内部员工出现的,于是后端也通过...

    问题背景

    前不久我们项目中由用户反馈说遇到笔记重复的问题,而且不只一次遇到类似的反馈。

    这种重复笔记总是出现的feed流的中间位置,如下示意图所示:

    这个图画的有点丑,凑合看,意思大概就是这样的。

    接下来,我就得追踪下这个问题了,开始时我几乎就一口咬定是接口返回的有问题,由于前几次后端没有日志,好像之前的反馈就那么过去了,直到后面又出现一次重复笔记的问题,这次是公司内部员工出现的,于是后端也通过这个抓到了相应的日志,发现返回的笔记的确没有重复的,这下跑不掉了,就是前端的问题。

    问题排查

    于是,我又重新梳理了下代码流程,发现有一处比较有嫌疑:

            ...
            if (...) {
                mItems[0] = noteItem
            } else {
                mItems.add(0, noteItem)
            }
            mAdapter.items = mItems
            mAdapter.notifyItemChanged(0)
            ...
    

    鉴于是公司项目,我就省略掉业务逻辑了,这里的代码按照开发者的意图是当RecyclerView第一个item如果已经是noteItem这种类型的时候,我们就将这个位置item替换成最新的,如果这个位置的item不是noteItem这个数据的话,我们需要手动把它添加到第一个位置去,到这里实际上都没有什么问题。

    但是,当我看到mAdapter.notifyItemChanged(0)这个方法,直觉告诉我这里好像有点问题,当上面的逻辑走到else这里的时候,会往list里add一个新的item,但是这时候调用的刷新方法却是notifyItemChanged(0)。

    这个notifyItemChanged明显是刷新某个item的方法,即当这个item里的数据有变化时,调用这个方法去刷新这个item区域的UI,但是如果我们在adapter中add了一个新的item,再调用这个方法明显是不行的,这里是导致重复的原因嘛,我其实也不太确定。

    问题复现

    于是我写了一个Demo试了下。

    class RecyclerViewActivity : AppCompatActivity() {
    
        private val mDataList = ArrayList<Any>()
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_recycler_view)
    
            val layoutManager = LinearLayoutManager(this)
            layoutManager.orientation = RecyclerView.VERTICAL
            recyclerView.layoutManager = layoutManager
    
            val customAdapter =  CustomAdapter(mDataList)
    
            recyclerView.adapter = customAdapter
    
            for (i in 0..5) {
                mDataList.add("text: $i")
            }
    
            recyclerView.adapter?.notifyDataSetChanged()
        }
    
        //刷新方法
        fun refresh(view: View) {
            mDataList.add(0, "add item")
            recyclerView.adapter?.notifyItemChanged(0)
        }
    
    }
    

    构造一个普通的feed列表,每次点击刷新按钮,就会调用刷新方法,调用刷新方法的时候往index为0的位置再add一个item,然后再调用notifyItemChanged(0)方法,上下滑动后,发现数据是重复了。

    下面放个gif图展示下效果。

    从gif图中可以看到,点击刷新按钮,添加了”add item“,往下滑动后,出现了两个”text:5“的item,这个就是重复的item。

    问题原因

    我们看到notifyItemChanged的文档说明:

    notifyItemChanged(int position)
    This is an item change event, not a structural change event.

    RecyclerView中有两种不同数据改变事件,一种叫(item changes)项目改变,另一种叫(structual changes)结构改变。项目改变指的是某个单个item的数据发生变化,这个时候没有位置的改变。而structual changes则是有位置的变化发生,主要是数据源的变化会导致RecyclerView item位置发生变化。

    我们这个问题是我们往数据源前面加了一个item,这个时候应该需要调用具有structual changes 的方法来刷新,而不是采用notifyItemChanged来刷新,因为notifyItemChanged是一个item changes 的方法。

    展开全文
  • Author:AXYZdong 自动化专业 工科男 有一点思考,有一点想法,有一点理性 ...结果这些方法不适用我的电脑出现问题,尝试了很多方法,修改注册表啊等等。 最后不经意间发现我删完桌面空文件夹后,...

    Author:AXYZdong
    自动化专业 工科男
    有一点思考,有一点想法,有一点理性

    我最近电脑上桌面上老是有一个文件夹,里面是空的,删了之后有重复出现。
    对于我这种有强迫症的人来说,无法容忍。
    于是乎,我开始寻求度娘和知乎的帮助。
    在上面找到了几种认可度比较高的解决方法:
    在这里插入图片描述
    在这里插入图片描述
    结果这些方法都不适用我的电脑出现的问题,尝试了很多方法,修改注册表啊等等。

    最后不经意间发现我删完桌面空文件夹后,打开百度网盘,这个文件夹突然又出现了,所以我就怀疑和百度网盘有关。于是我看了看百度网盘的下载地址,刚好就是那个突然出现空文件夹的地址,之后修改了下载地址。又把百度网盘重新打开了一次,结果桌面没有出现那个空文件夹了。

    总结:当你在试了百度上面大神的各种方法后,桌面上文件夹删除之后依然会出现,不妨试试我所述的方法。

    找到你电脑上可以自动创建文件夹的应用(比如QQ、百度网盘等),找找那些应用的设置,看看它们把自动创建的文件夹放到电脑上的什么位置(比如百度网盘的下载地址),如果是桌面(Desktop)的话,修改自动创建文件夹的地址就可以了。如果不是桌面的话,看看其他应用有没有把自动创建的文件夹的地址设置在桌面。

    如果有不懂的地方可以私信我呢!

    码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦!

    展开全文
  • oracle中分页排序出现重复数据问题

    千次阅读 2018-04-23 15:03:57
    oracle中分页查询同时进行排序,但出现重复数据,原因是使用的排序字段的数据不是唯一的,这和oracle分页排序机制有关,不能按照分页前的顺序显示分页后的顺序,具体原理没有细看,知道的且能用大白话说明白的可以...
    • oracle中分页查询同时进行排序,但出现重复数据,原因是使用的排序字段的数据不是唯一的,这和oracle分页排序机制有关,不能按照分页前的顺序显示分页后的顺序,具体原理没有细看,知道的且能用大白话说明白的可以留言。
    • 解决办法:oracle分页排序必须满足的2个条件:(1、sql语句中必须有排序条件;2、排序条件如果没有唯一性,那么必须在后边跟上一个唯一性的条件,比如主键)
    展开全文
  • 搜资料提示orm映射的表必须有主键 网上说放一...使用默认查询的时候 会出现问题 返回所有数据重复 select id,comid from st_PkgActvty_comset where id = 'SPA0000001' 解决方法 在这里插入代码片 @Table(name...

    搜资料提示orm映射的表必须有主键 网上说放一个空的@id放在那里 结果此方法测试无效

    表数据如下

    在这里插入图片描述
    此时id不是主键 也不是唯一标识 就是个叫id的列名

    使用默认查询的时候 会出现问题 返回所有数据都是重复

    select id,comid from st_PkgActvty_comset  where id = 'SPA0000001'
    

    解决方法

    在这里插入代码片
    
    @Table(name = "st_PkgActvty_comset")
    @Entity
    @Data
    public class StPkgActvtyComset {
    	// 实体中添加主键
        @Id
        @Column(name = "aid")
        private Long aid;
    
        @Column(nullable = true, name = "id")
        private String id;
    
        @Column(nullable = true, name = "comid")
        private String comid;
    
    }
    

    查询语句中 使用查询当前行号作为主键

    select ROW_NUMBER() OVER (ORDER BY comid) AS aid, id,comid from st_PkgActvty_comset  where id = 'SPA0000001'
    

    增加了主键字段后 查询的数据就是正常的了 最好是 多表关联的中间表给一个自增的id 还有就是和主键无关的字段 尽量不要叫做id

    展开全文
  • 在实际开发中遇到一个有趣的问题,有关数据库order by排序不唯一,导致分页出现重复数据问题。这个问题还是有点特殊的。因为数据库研究的少这个问题挺让我困惑。为了解决它找了很久的错误。 首先介绍一下问题出现...
  • 已经配置了环境变量,执行npm run start,仍然会出现NODE_PATH不是内部或外部命令的问题 以上是package.json的配置,运行npm run start , 会报以下错误 百度许久,网上是说的配置环境变量。但是已经配置了环境...
  • power bi遵循严格的主外键关系,这样可以保证数据源在进入报表时候的绝对逻辑正确性,然而在实际工作中,尤其在处理多表关联的时候,大部分情况,并不是主外键的关联关系,这个时候在power bi中会出现没有不重复键的...
  • select  *  from  ( select  row_.*, ... rownum rownum_ ...数据量不是一条两条,而是很多条,需要分页显示,而上面这个sql语句是最常用的分页方式,而rownum是一个伪列,而我们经常误认为我们...则会出现重复数据
  • 排序时候,如果排序字段不是唯一字段,两次查询数据顺序会不一直,导致一条记录出现在多页 插件生成sql: WITH selectTemp AS ( SELECT TOP 100 PERCENT ROW_NUMBER ( ) OVER ( ORDER BY 排序字段) AS __row_...
  • 本人采用Visual Studio 2010编译器编译代码,根据书上给出命令测试,结果出现“在命令行键入“cl”时出现不是内部或外部命令,也不是可运行的程序或批处理文件的问题。”百度后得到解决方法并且有所拓展。 在...
  • 前些天出现了一个非常有意思的问题,sql简单化出来以后是下面这个样: select * from( SELECT tmp_page.*, rownum row_id FROM ( SELECT * FROM T_BAP_MEC_TZERO_STL ORDER BY dt_ute desc nulls last )tmp_page ...
  • 在Ubuntu下使用opencv处理视频流时,由于相机...1. 用高帧率的相机,但是由于经费问题,此方案暂缓执行; 2. 判断返回值是否相同,如果返回的数据完全相同,则有比较高的置信度认为这是通过同一幅图像返回的结果;...
  • 2.自定义TextView 重写isFocused()函数,让他放回true也就是一直获取了,焦点效果自然也就出来了,如果这不能解决那肯就不是焦点问题了。 public class MarqueTextView extends TextView { public...
  • 但是在有时在readTimtout的时候,会出现底层重新发送请求的问题。 刚开始一直怀疑是服务器配置的问题,最后通过抓包工具发现确实是手机重新发送了数据包。 google后也没有发现好的解决办法。现在的解决方法是...
  • 按照小白的流程走完后,喵哥惊讶地发现只有一个“anaconda prompt”,本想着借此机会好好熟悉一下prompt的命令,但是在打开“anaconda prompt”时,出现“conda'不是内部或外部命令 ’”问题。这是用用不了! 然....
  • RocketMQ不解决消息重复问题,RocketMQ不解决消息重复问题,RocketMQ不解决消息重复问题,重要的事情说三遍。 基本上说我很讨厌有人问这个问题,问这个问题首先你对消息的生命周期缺乏理解,其次RocketMQ的定位不是...
  • 其实不是暖男我不想在这里写,这三个问题我想了下,统统是MQ的重点问题,单独拿一个出来就是一篇文章了,篇幅实在太长了,我会在下一章挨个介绍一遍的。 数据一致性 这个其实是分布式服务本身就存在的一个问题,...
  • 经典面试问题: Top K 之 -- 海量数据找出现次数最多或,不重复的 林冠宏 / 指尖下的幽灵 仅列举一些解决方法,事实的解决方案是非常多的。 这些问题都是面临着有如下的考虑: 内存...
  • adb devices 出现unauthorized问题

    千次阅读 2019-03-22 17:01:46
    最近公司提供给客户的开发机器用户使用连接adb时出现adb devices时出现unauthorized问题,而且并不是每台pc都会出现问题,存在个别pc会出现这个问题,这时第一反应是不是客户的pc配置问题,就尝试将正常的adb工具...
  • 在点击启动程序安装win10时,却提示不是有效的win32程序,无法运行,下图:这时利用bios引导就可以实现安装win10系统了。额额额。。。还有 我在安装win10的过程中总是重复这几个步骤, 安装成功,点击立即重启...
  • flutter多次重复关闭dialog,然后出现白屏问题,报错如下: [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: Looking up a deactivated widget's ancestor is unsafe. At this point the ...
  • 在使用电脑的过程中,可能会遇到这样一些问题: 桌面有流氓的“网址导航”快捷方式,删除后没多久又出现了。 某路径出现了占很大空间的文件夹,不知道谁创建的。 某个系统设置,修改后没...问题频繁出现的话,用Pr...
  • 今天在服务器上配置FTP,出现了两个问题: 1、用户名及密码添加成功,但是其它配置用户的文件失败,FTP无法登陆; 2、访问路径有问题不是绝对路径,导致FTP无法登陆; 解决办法如下: 1、首先,确认FTP是否...
  • nginx 重复提交 重复请求问题

    万次阅读 2015-05-11 22:17:24
    我遇到的奇葩问题。后台使用的是nginx + tomcat前端页面确实只发送了一个ajax请求到后台。 后台却接收到了两条请求!百度了一下,说是因为nginx负债均衡,一个请求超时后会重复发送一次请求给下一个服务端。反正我...
  •   今天在生产环境,业务同事导出文件时遇到了出现重复数据的问题。因为之前这个功能是我和我带的外包同事一起做的,所以很熟悉这块代码。经过线上操作核对,和代码检测,发现线上查询确实出现重复数据,而导出...
  • 在Windows 7 上,资源管理器中双击OFFICE 2007文档打开时经常会出现“向程序发送命令时出现问题”,只打开了程序界面,文档却没有打开,再次双击文档图标才能打开,或者先打开程序,然后把文档图标拖到OFFICE程序中...
  • 而且不是百分之百,会概率出现,而且有时连接成功后,发送一个data块,服务器再往回返,会收到无限多个重复的data块。使用wireshark抓包也看不出来有什么问题。 百思不得其解啊,CSDN / stackoverflow什么的搜...
  • Android 解析软件包时出现问题

    万次阅读 2018-10-09 15:48:41
    Android 解析软件包时出现问题 解决方案:Settings -&amp;gt; Build,Execution,Deployment -&amp;gt; Instant Run -&amp;gt; 取消这个功能。 以下为吐槽: 每次升级Android Studio是玩命一般的刺激...
  • Expandablelistview的数据重复问题

    千次阅读 2016-06-12 11:01:47
    解决ExpandableListView数据重复问题

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 763,950
精华内容 305,580
关键字:

往往重复出现的问题都不是