96SEO 2026-02-20 08:10 14
随着flow到流行度越来越高#xff0c;有开发者呼吁我使用flow#xff0c;于是我就如你们所愿#xff0c;新增了StateFlow作…

引言所有成功者的背后都有一份艰苦的历程不要只看到了人前的风光而低估了他们背后所付出的努力。
随着flow到流行度越来越高有开发者呼吁我使用flow于是我就如你们所愿新增了StateFlow作为新的数据载体。
当然你仍然可以使用旧版本的LiveData代码写法略微不同罢了。
如果对我的dcache框架设计不是很理解的小伙伴可以看我的专栏其他文章。
如果你非要问我为什么要使用StateFlow我可以告诉你因为可以装逼哈哈开个玩笑。
新技术的流行必然有一部分炒作的部分但也肯定是有其改进的地方的。
要讲StateFlow就不得不从flow开始说起。
flow是属于kotlin语言范畴的你可以把它当成kotlin协程的一个API。
没错kotlin语言的野心就是要做跨平台的语言答案就在这里LiveData是android的API而SharedFlow与StateFlow直接就是Kotlin编程语言级别的代码复用性更好。
以列表数据模式的Repository为例。
从2.1.5开始Repository注解拆分成了Repository注解和ListRepository所以2.1.4版本你应该使用Repository注解而如果说你使用的是2.1.5及以上版本的dcache库要使用ListRepository注解。
由于StateFlow在2.2.0版本才开始支持所以自然要使用ListRepository注解。
{super.onCreate(savedInstanceState)//
此处省略代码若干行lifecycleScope.launchWhenCreated
{repository.getListFlowData().collect
repository.fetchListData(listener
null)加载状态监听接口和描述信息可以传null。
这个抓取数据方法一经调用collect代码块就会刷新数据。
由于fetchListData()天然就返回的StateFlow所以你并不一定要分为两步观察数据。
而如果你要分为两步则调用getListFlowData()或getFlowData()。
再看原来LiveData的写法这次我们不用list模式的Repository如果要使用直接配置Repository注解。
minutelyRepository.fetchData(按分钟统计天气).observe(this,
})很明显fetchData()返回LiveData直接调用observe()进行数据的观察。
简单总结下API的设计在调用层面具有相似性所以无论你使用的是LiveData为数据载体的Repository还是StateFlow的都是调用fetchData()或fetchListData()更新缓存数据框架内部自动帮你缓存到数据库同时常驻在内存并递送给UI层刷新界面。
所以你可以专心开发你的业务逻辑这是不是很棒
com.example.dcache.repositoryimport
com.example.dcache.biz.wea***r.Wea***rService
com.example.dcache.model.Wea***rModel
dora.cache.data.fetcher.OnLoadStateListener
dora.cache.repository.DoraDatabaseCacheRepository
dora.cache.repository.Repository
dora.http.retrofit.RetrofitManagerRepository
DoraDatabaseCacheRepositoryWea***rModel(context)
DoraCallbackWea***rModel,listener:
{RetrofitManager.getService(Wea***rService::class.java).getWea***r(latlng).enqueue(callback)}
}最后简单复习一下Repository的写法。
详细Demo代码https://github.com/dora4/DoraCacheSample
}是不是没啥变化对的这就是架构设计的魅力所在。
前期架构设计比较到位所以只需要遵循开闭原则。
对扩展开放对修改关闭。
原先继承BaseRepository的现在继承BaseFlowRepository的。
名字有带Flow单词的就是StateFlow的。
笔者写框架和文档不容易希望你的支持。
你的支持是我改进优化最大的动力
https://github.com/dora4/dcache-android
https://github.com/dora4/dora-studio-plugin
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback