当前位置: 首页 > news >正文

做漫画的网站有哪些成都快速建站模板

做漫画的网站有哪些,成都快速建站模板,广告设计职业生涯规划书,怎么申请自媒体平台账号引言#xff1a;所有成功者的背后#xff0c;都有一份艰苦的历程#xff0c;不要只看到了人前的风光#xff0c;而低估了他们背后所付出的努力。 随着flow到流行度越来越高#xff0c;有开发者呼吁我使用flow#xff0c;于是我就如你们所愿#xff0c;新增了StateFlow作… 引言所有成功者的背后都有一份艰苦的历程不要只看到了人前的风光而低估了他们背后所付出的努力。 随着flow到流行度越来越高有开发者呼吁我使用flow于是我就如你们所愿新增了StateFlow作为新的数据载体。当然你仍然可以使用旧版本的LiveData代码写法略微不同罢了。如果对我的dcache框架设计不是很理解的小伙伴可以看我的专栏其他文章。 为什么推荐使用StateFlow 如果你非要问我为什么要使用StateFlow我可以告诉你因为可以装逼哈哈开个玩笑。新技术的流行必然有一部分炒作的部分但也肯定是有其改进的地方的。要讲StateFlow就不得不从flow开始说起。flow是属于kotlin语言范畴的你可以把它当成kotlin协程的一个API。没错kotlin语言的野心就是要做跨平台的语言答案就在这里LiveData是android的API而SharedFlow与StateFlow直接就是Kotlin编程语言级别的代码复用性更好。 LiveData和StateFlow使用对比 以列表数据模式的Repository为例。从2.1.5开始Repository注解拆分成了Repository注解和ListRepository所以2.1.4版本你应该使用Repository注解而如果说你使用的是2.1.5及以上版本的dcache库要使用ListRepository注解。由于StateFlow在2.2.0版本才开始支持所以自然要使用ListRepository注解。 先看StateFlow的写法。 override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)// 此处省略代码若干行lifecycleScope.launchWhenCreated {repository.getListFlowData().collect {adapter.setTemperatures(it)}} }不要忘了使用协程作用域。 然后我们调用fetchListData()。 repository.fetchListData(listener object : OnLoadStateListener {override fun onLoad(state: Int) {Log.d(WeatherActivity, 数据是否加载成功${state0})} }, description null)加载状态监听接口和描述信息可以传null。这个抓取数据方法一经调用collect代码块就会刷新数据。由于fetchListData()天然就返回的StateFlow所以你并不一定要分为两步观察数据。而如果你要分为两步则调用getListFlowData()或getFlowData()。 再看原来LiveData的写法这次我们不用list模式的Repository如果要使用直接配置Repository注解。 minutelyRepository.latlng 116.407526,39.90403 minutelyRepository.fetchData(按分钟统计天气).observe(this, Observer {it?.apply {tvCacheMinutely.text minutely:${toString()}\n} })很明显fetchData()返回LiveData直接调用observe()进行数据的观察。简单总结下API的设计在调用层面具有相似性所以无论你使用的是LiveData为数据载体的Repository还是StateFlow的都是调用fetchData()或fetchListData()更新缓存数据框架内部自动帮你缓存到数据库同时常驻在内存并递送给UI层刷新界面。所以你可以专心开发你的业务逻辑这是不是很棒 package com.example.dcache.repositoryimport android.content.Context import com.example.dcache.biz.weather.WeatherService import com.example.dcache.model.WeatherModel import dora.cache.data.fetcher.OnLoadStateListener import dora.cache.repository.DoraDatabaseCacheRepository import dora.cache.repository.Repository import dora.http.DoraCallback import dora.http.retrofit.RetrofitManagerRepository class WeatherRepository(context: Context) : DoraDatabaseCacheRepositoryWeatherModel(context) {var latlng: String override fun onLoadFromNetwork(callback: DoraCallbackWeatherModel,listener: OnLoadStateListener?) {RetrofitManager.getService(WeatherService::class.java).getWeather(latlng).enqueue(callback)} }最后简单复习一下Repository的写法。详细Demo代码https://github.com/dora4/DoraCacheSample 。 框架设计的变化 这是StateFlow的。 /*** 用于网络数据抓取。*/ interface IFlowDataFetcherM {/*** 清空flow data的数据。*/fun clearData()/*** 抓取数据的回调。*/fun callback(): DoraCallbackM/*** 开始抓取数据。*/fun fetchData(description: String?, listener: OnLoadStateListener? OnLoadStateListenerImpl()): StateFlowM?/*** 获取flow data。*/fun getFlowData(): StateFlowM? }这是LiveData的。 package dora.cache.data.fetcherimport androidx.lifecycle.LiveData import dora.http.DoraCallback/*** 用于网络数据抓取。*/ interface IDataFetcherM {/*** 清空livedata的数据。*/fun clearData()/*** 抓取数据的回调。*/fun callback(): DoraCallbackM/*** 开始抓取数据。*/fun fetchData(description: String?, listener: OnLoadStateListener? OnLoadStateListenerImpl()): LiveDataM?/*** 获取livedata。*/fun getLiveData(): LiveDataM? }是不是没啥变化对的这就是架构设计的魅力所在。前期架构设计比较到位所以只需要遵循开闭原则。对扩展开放对修改关闭。 原先继承BaseRepository的现在继承BaseFlowRepository的。名字有带Flow单词的就是StateFlow的。 开源框架支持 笔者写框架和文档不容易希望你的支持。你的支持是我改进优化最大的动力 数据缓存dcache框架 https://github.com/dora4/dcache-android dora框架的开发插件 https://github.com/dora4/dora-studio-plugin dora框架 https://github.com/dora4/dora
http://www.hkea.cn/news/14473196/

相关文章:

  • 网站建设与维护就业前景广州做企业网站的公司
  • 二级学院网站建设自评报告如何建一个视频网站
  • 河南省建设厅网站人事网网站建设火凤凰
  • 婚恋网站做翻译县区网站服务器机房建设
  • 集团公司网站建设策划方案辽阳百姓网免费发布信息网
  • 如何获取网站访客qq基金会网站模板
  • 做百度药材种苗网站株洲市
  • 极速网站开发wordpress如何构建页面
  • 优秀的网站建设价格网站建设教程软件下载
  • 中山移动网站建设报价网文封面制作网站
  • c语言怎么做网站wordpress迁移空间插件
  • 网站开发工具 n沧州建设网站公司
  • 天津网站建设方案维护北京网站改版费用
  • 汉狮做网站公司郑州苏州房产网
  • 用dw做的网页怎么上传到网站wordpress post 与 page 区别
  • 重庆免费自助建站模板注册公司具体费用
  • 郑州网站高端网站设计建立一个平台需要几部分
  • 广州网站建设哪好教做甜品的网站
  • 画册设计网站医联体网站建设
  • 政务公开和网站建设自查报告网上学设计哪个网站好
  • 学习做ppt 的网站网站 转成 微信小程序
  • 企业网站自助建站上海杭州市城乡规划局建设局官方网站
  • 网站域名管理宝德科技专业嘉兴网站建设
  • 网站建设备案和免备案的区别网站开发企业需要什么资质
  • 网站开源推广公司怎么做
  • 东莞网站设计与网站制作wordpress 标签设置
  • 企业网站开发标准net网站开发实例
  • 金融网站开发文档下载wordpress 新网页打开
  • wap网站生成健身网站设计模板下载
  • 设计策划网站seo学习论坛