| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 移动开发 -> ObservableField set 延迟问题 -> 正文阅读 |
|
|
[移动开发]ObservableField set 延迟问题 |
|
先说结论 ObservableField 一般用于 dataBinding 交互式绑定。 ObservableField.set() 从时效性来说并不等同于 TextView.setText()。 ????????解决办法,如果需要实时处理观察结果 ,通过? Choreographer.getInstance().postFrameCallback() 处理。
举个简单例子
? 查看ui,可以看到没有问题正常渲染,那么所说的延迟是体现在哪里呢。查看日志
?????????可以看到?viewModel.setText("天气真好") 之后并没有立即调用TestView.setText。通过对源码的追踪分析找到问题所在。
?对于Choreographer感兴趣的朋友可以去Android 官网看一下,? mChoreographer.postFrameCallback的作用是 渲染下一帧时执行此回调,那么到这里就很清楚了,想要ObservableField.set 之后立马处理响应结果,可以这样写。
下面是发现问题的业务场景 。 ? ? ? ? 结合ObservableField 与dataBinding,RecyclerView绑定Adapteer,此处使用的是开源框架 BRVAH。
? ? ? ? ?查看setEmptyView()函数,此处因为?mAdapter.set(ecgDataAdapter) 并没有立即发送事件,也就是 recyclerView.setAdapter 进行绑定,导致adapter .mRecyclerView为null,所以设置EmptyView无效。
? ? ? ? ?修改为
|
|
|
| 移动开发 最新文章 |
| Vue3装载axios和element-ui |
| android adb cmd |
| 【xcode】Xcode常用快捷键与技巧 |
| Android开发中的线程池使用 |
| Java 和 Android 的 Base64 |
| Android 测试文字编码格式 |
| 微信小程序支付 |
| 安卓权限记录 |
| 知乎之自动养号 |
| 【Android Jetpack】DataStore |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/29 21:10:57- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |