ViewModel中持有一个数据对象
//将“秒钟”这个字段用MutableLiveData包装起来
private var currentSecond: MutableLiveData<Int>? = null

fun getCurrentSecond(): LiveData<Int>? {
    if (currentSecond == null) {
        currentSecond = MutableLiveData(0)
    }
    return currentSecond
}
    
    
// 通过LiveData.observe()实现对ViewModel中数据变化的观察
liveData.observe(this, object : Observer<Int> {
    override fun onChanged(@Nullable second: Int) {
        //收到回调后更新UI界面
        (findViewById(R.id.tv_timer) as TextView).text = "TIME:$second"
    }
})

当数据变更时会自动通知监听者
fun startTiming() {
    viewModelScope.launch {
        repeat(100){
            delay(1000)
            val data: MutableLiveData<Int> = getCurrentSecond() as MutableLiveData<Int>
            data.value = data.value!! + 1
            println("Current value is ${data.value}")
        }
    }
}

LiveData学习相关推荐

  1. Android Jetpack Components of LiveData 学习笔记

    Android Jetpack Components of Lifecycle 学习笔记 Android Jetpack Components of LiveData 学习笔记 Android Jet ...

  2. ViewModel学习

    前置LiveData学习 没有使用viewModel之前,LiveData数据和逻辑的处理都放在activity里面,代码逻辑不清晰 现在将LiveData数据和逻辑处理放在ViewModel中,可以 ...

  3. Android Jetpack Components of ViewModel 学习笔记

    Android Jetpack Components of Lifecycle 学习笔记 Android Jetpack Components of LiveData 学习笔记 Android Jet ...

  4. Android学习笔记 93. Room、LiveData 和 ViewModel

    Android学习笔记 Android 开发者基础知识 (Java) -- Google Developers 培训团队 文章目录 Android学习笔记 Android 开发者基础知识 (Java) ...

  5. 记录每天学习的新知识:LiveData

    LiveData 前言 LiveData 使用 LiveData 的优势 使用 更新 转换 合并 扩展 - 自定义LiveData 参考地址 前言 Jetpack 是一个丰富的组件库,它的组件库按类别 ...

  6. 豆瓣评分 8.6,近 5 万读者学习的 Android 经典最新版出版,承载无数程序员的回忆......

    题图 | 新的小绿人 © Google "出色向导" 对新手来说,学习 Android 开发一开始会很难.就像初次踏入异国他乡一样,即使会说当地语言,一开始也绝不会有舒服自在的感觉 ...

  7. LiveData ViewModel 使用详解

    什么是 LiveData LiveData 是一个可观测的数据持有类,但是不同于通常的被观察者,LiveData 具有生命周期感知能力.通俗点说,LiveData 就是具有 "Live&qu ...

  8. Android架构组件LiveData+ViewModel

    前言 最近项目中有用到LiveData+ViewModel的架构组件,今天来学习一波.本篇文章参考:MVVM 架构,ViewModel和LiveData 所有语言为Kotlin. LiveData L ...

  9. Andriod --- JetPack (五):DataBinding + LiveData +ViewModel 简单实例

    1.Andriod - JetPack (一):初识 JetPack 2.Andriod - JetPack (二):LifeCycle 的诞生 3.Andriod - JetPack (三):Vie ...

最新文章

  1. 注册修复动态链接库DLL文件
  2. .NET Core使用EF分页查询数据报错:OFFSET语法错误问题
  3. PAT甲级1144 The Missing Number:[C++题解]哈希表
  4. 里面怎么定义变量_小哥今天要给朋友们分享一下Java编程语言中的变量与常量的区别...
  5. odbc mysql导出access_将mysql数据导入access数据库
  6. CentOS7.6下设置mysql服务开机启动
  7. Bailian2682 循环移动【模除】
  8. server2008r2经常蓝屏或者自动重启
  9. 编写一个程序,给出汉字“你” “我” “他”在Unicode表中的位置
  10. 在网站中使用谷歌“ROBOTO”字体(解决ios数字1和0大小不等宽问题)
  11. Homebrew国内加速
  12. PHP+企业微信网页授权登陆
  13. Excel如何快速删除指定区域公式保留数值
  14. html版贪吃蛇的项目计划书,自动贪吃蛇.html
  15. 区块链服务网络(BSN)技术详解
  16. 快递单号查询免费api接口(PHP示例)
  17. 嘉为蓝鲸CPack制品库正式发布,以制品之力打破研运界限
  18. (激励自己学习)努力吧,现在也不晚(转)
  19. linux将目录打包压缩,linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?...
  20. int转换成char

热门文章

  1. Java8函数式编程(2)--流与管道
  2. java.util.function包
  3. 用python画一个人_用turtle画个单身狗送给自己~
  4. python请输入_不断提示用户输入Python
  5. Ubuntu 华为开源镜像站 Mirror
  6. Cortex-M3-复位(序列)
  7. MAX13085E/MAX485 _中文翻译
  8. Linux下main函数带参数问题和atoi函数详解
  9. Left 4 Dead升级补丁总汇(3663-3986)
  10. [XSS神器]XssEncode chrome插件 - 0x_Jin