Android ViewModel 的作用
监听activity和fragment的销毁事件,在视图销毁时会调用onCleared(),可以用来清除缓存数据和取消异步请求,避免内存泄漏,防止回调null视图对象。
class MainActivity : AppCompatActivity() {//将ViewModel添加到activity的生命周期管理private val viewModel by lazy { ViewModelProviders.of(this)[MainViewModel::class.java] }override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)viewModel.callback = {button.text = it}button.setOnClickListener {//获取数据viewModel.get()finish()}}
}
class MainViewModel : ViewModel() {var callback: ((s: String) -> Unit)? = nullfun get() {//异步获取数据Handler(Looper.getMainLooper()).postDelayed({callback?.invoke("ok")}, 2000)}override fun onCleared() {super.onCleared()//当activity或fragment被销毁时清除回调callback = null}}
Android ViewModel 的作用相关推荐
- Android ViewModel
In this tutorial, we'll be digging deep into the concept of ViewModel. We'll be developing a Favouri ...
- android的适配器作用,适配器在Android中的作用是什么?
适配器在Android中的作用是什么? 我想知道在Android环境中何时,何地以及如何使用适配器. 来自Android开发者文档的信息对我来说不够,我希望得到更详细的分析. 11个解决方案 39 v ...
- 腾讯、网易云、字节跳动面试点总结—AMS在Android起到什么作用?
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注 面试官: AMS在Android起到什么作用,简单的分析下Android的源码 心理分析:这道题在发生在大多数场景下.面对这 ...
- 安卓Android ViewModel 超简单实例
安卓Android ViewModel 超简单实例 文章目录 安卓Android ViewModel 超简单实例 前言 使用步骤 1.引入库 2.继承ViewModel 并定义一个对象 3.到处去用 ...
- android 自定义xmlns,Android xmlns 的作用及其自定义实例详解
Android xmlns 的作用及其自定义实例详解 xmlns:Android="http://schemas.android.com/apk/res/android的作用是: 这个是xm ...
- URI是什么,在Android中有什么作用?
URI是什么,在Android中有什么作用? Android中的URI即通用资源标识符,Universal Resource Identifier, 简称URI. Uri代表要操作的数据,Androi ...
- Android Environment 的作用以及常用的方法
从源码中可以看到这样一句话 Provides access to environment variables Environment的作用是: 提供对环境变量的访问 常见的方法 //外部存储设备的当 ...
- android 焦点的作用,Android中的视图焦点Focus的详细介绍
在非触摸屏设备中接收事件和处理响应的控件是具有焦点(Focused)的控件.一个窗口中一个时间内只能有一个具有焦点的控件.在早期具有滚轮设备的android系统中以及现在的智能TV电视应用中视图的焦点 ...
- Android适配器以及作用,Android RecyclerView 通用适配器的实现
分析 我们需要在RecyclerViewAdapter内部维持一个数据集合的引用 需要实现Item的点击事件,包括短按和长按,并需要向外部提供设置监听器的方法 这个适配器必须通用,所以应该是泛型的,并 ...
最新文章
- Android 阻隔返回键
- 036_PageHeader页头
- Django(part52)--项目部署
- 储存字母 电子计算机,计算机基础_精简版
- 阿里云的SLB,植入cookie和重写cookie有什么区别?
- php$_GET的作用,PHP-$_GET和$_POST不起作用
- 拓端tecdat|R语言提取时间序列的周期性成分应用EMD,小波滤波器,Baxter过滤器等
- 10G ocp 题库
- Android——一个简单的银行系统
- java读文件换行_java读取文本文件txt时候的换行问题
- 学计算机高考英语听力考试时间,2020年北京高考英语听力首次机考时间定为12月14日...
- BT之家种子连接提取
- 零基础转行学编程技术难吗?
- GDAL读取Jpeg2000格式图像
- 江西伟人系列第三篇:唐宋八大家(欧阳修)
- ​​​​​​​24点游戏
- 外汇天眼:随着美元贬值所有世界货币,每个国家都在为自己着想
- linux kernal map
- JavaWeb - Excel/Word(2003/2007、上传/下载、解析/生成、导入/导出)
- GIS理论知识(三)之ArcGIS平台、SuperMap超图平台和开源平台