ARTICLE · 1058981
保姆级学习开发安卓手机软件实战(三)
保姆级学习开发安卓手机软件实战(三)
保姆级学习开发安卓手机软件实战(三)
今天要干的事就一件:把数据跟界面彻底拆开。VM(ViewModel) 在后台跑着,Flow 自动推送新数据给 UI。
先说怎么加依赖。安卓这边分两步走,跟 C# 的 NuGet 不太一样。libs.versions.toml 只是登记个通讯录,真正下载库得靠 build.gradle.kts 里的 implementation。为啥多此一举?就是为了所有模块统一管一份版本,免得运行时崩掉。
接着建个专属的 ViewModel。一个页面配一个,相当于给这个页量身定制的后台服务。里面套了个双层状态流:内部用 MutableStateFlow 发新值,对外用 asStateFlow() 锁死成只读。页面一打开,它就自动去拉模拟数据。
最后在 UI 里接住它。用 viewModel() 拿实例,屏幕一转 Activity 重建了也不怕,照样复用旧的。再把流转成 Compose 的状态,记得用带生命周期感知的那个版本——退到后台就暂停订阅,省电。
跑起来一看,三个设备名稳稳当当地列出来了。
原文保姆级学习开发安卓手机软件实战(三)--ViewModel + Flow
作者提示: 个人观点,仅供参考
湖南,3小时前,