jetpack
文章平均质量分 90
江太翁
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Flow 内部机制 二
Kotlin Flow的冷流特性深度依赖协程机制,通过"惰性发射+独立订阅+上下文隔离"实现。核心机制包括:1) flow构建器封装待执行的发射逻辑;2) collect触发时创建独立协程作用域启动发射;3) 每个订阅者独立消费全量数据;4) 生命周期与订阅者绑定,取消时自动终止;5) flowOn操作符实现上下文分离。相比热流,冷流具有按需生产、独立消费、生命周期安全等优势,通过协程挂起实现轻量级背压,是Kotlin异步数据流的高效解决方案。原创 2025-10-18 12:09:59 · 731 阅读 · 0 评论 -
Room 概要
Kotlin Room 是 ,是对 SQLite 的封装与增强,旨在简化数据库操作、提升开发效率,并完美契合 Jetpack 组件生态。以下是从到。原创 2025-10-18 14:17:38 · 1098 阅读 · 0 评论 -
Flow 内部机制
以下结合 Kotlin Flow 源码(基于1.7.3)详细解析其实现机制,重点分析核心接口、操作符组合原理、冷流特性及背压处理。原创 2025-10-16 16:21:04 · 930 阅读 · 0 评论 -
StateFlow 和 SharedFlow
:替代 LiveData,提供更灵活的协程支持,确保所有订阅者获取最新状态。:确保 UI 始终显示最新状态,避免因配置变更导致的数据丢失。:处理一次性事件(如通知、用户操作),支持灵活的缓冲策略。:额外缓冲容量,用于处理生产者和消费者速度差异。:状态管理工具,用于持久化并同步最新状态值。:通用事件总线,支持广播事件与历史数据回放。:新订阅者回放的历史数据数量(默认 0)。✅ 需要持久化最新状态(如 UI 状态)。新订阅者立即收到当前值(粘性)。(默认):挂起生产者直到有空间。原创 2025-10-16 09:02:21 · 619 阅读 · 0 评论 -
LiveData 粘性事件原理
屏幕旋转后,恢复 ViewModel 中保存的 LiveData 状态。:即使观察者在数据发送完成后才订阅,仍能接收到最后一次发送的数据。跨组件通信时,确保新订阅者接收历史事件(需谨慎使用)。:LiveData 内部维护的版本号,初始值为。:自定义 LiveData 子类,覆盖。:旧数据持续触发回调,导致资源浪费。:数据仅在观察者处于活跃状态(如。:新页面意外接收旧页面的数据。:通过标记位控制数据消费次数。:包装观察者的核心类,实现。:如用户行为日志被多次记录。:当组件进入活跃状态时,原创 2025-10-15 19:06:54 · 299 阅读 · 0 评论
分享