监听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 的作用相关推荐

  1. Android ViewModel

    In this tutorial, we'll be digging deep into the concept of ViewModel. We'll be developing a Favouri ...

  2. android的适配器作用,适配器在Android中的作用是什么?

    适配器在Android中的作用是什么? 我想知道在Android环境中何时,何地以及如何使用适配器. 来自Android开发者文档的信息对我来说不够,我希望得到更详细的分析. 11个解决方案 39 v ...

  3. 腾讯、网易云、字节跳动面试点总结—AMS在Android起到什么作用?

    本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注 面试官: AMS在Android起到什么作用,简单的分析下Android的源码 心理分析:这道题在发生在大多数场景下.面对这 ...

  4. 安卓Android ViewModel 超简单实例

    安卓Android ViewModel 超简单实例 文章目录 安卓Android ViewModel 超简单实例 前言 使用步骤 1.引入库 2.继承ViewModel 并定义一个对象 3.到处去用 ...

  5. android 自定义xmlns,Android xmlns 的作用及其自定义实例详解

    Android xmlns 的作用及其自定义实例详解 xmlns:Android="http://schemas.android.com/apk/res/android的作用是: 这个是xm ...

  6. URI是什么,在Android中有什么作用?

    URI是什么,在Android中有什么作用? Android中的URI即通用资源标识符,Universal Resource Identifier, 简称URI. Uri代表要操作的数据,Androi ...

  7. Android Environment 的作用以及常用的方法

    从源码中可以看到这样一句话 Provides access to environment variables Environment的作用是:  提供对环境变量的访问 常见的方法 //外部存储设备的当 ...

  8. android 焦点的作用,Android中的视图焦点Focus的详细介绍

    在非触摸屏设备中接收事件和处理响应的控件是具有焦点(Focused)的控件.一个窗口中一个时间内只能有一个具有焦点的控件.在早期具有滚轮设备的android系统中以及现在的智能TV电视应用中视图的焦点 ...

  9. Android适配器以及作用,Android RecyclerView 通用适配器的实现

    分析 我们需要在RecyclerViewAdapter内部维持一个数据集合的引用 需要实现Item的点击事件,包括短按和长按,并需要向外部提供设置监听器的方法 这个适配器必须通用,所以应该是泛型的,并 ...

最新文章

  1. Android 阻隔返回键
  2. 036_PageHeader页头
  3. Django(part52)--项目部署
  4. 储存字母 电子计算机,计算机基础_精简版
  5. 阿里云的SLB,植入cookie和重写cookie有什么区别?
  6. php$_GET的作用,PHP-$_GET和$_POST不起作用
  7. 拓端tecdat|R语言提取时间序列的周期性成分应用EMD,小波滤波器,Baxter过滤器等
  8. 10G ocp 题库
  9. Android——一个简单的银行系统
  10. java读文件换行_java读取文本文件txt时候的换行问题
  11. 学计算机高考英语听力考试时间,2020年北京高考英语听力首次机考时间定为12月14日...
  12. BT之家种子连接提取
  13. 零基础转行学编程技术难吗?
  14. GDAL读取Jpeg2000格式图像
  15. 江西伟人系列第三篇:唐宋八大家(欧阳修)
  16. ​​​​​​​24点游戏
  17. 外汇天眼:随着美元贬值所有世界货币,每个国家都在为自己着想
  18. linux kernal map
  19. JavaWeb - Excel/Word(2003/2007、上传/下载、解析/生成、导入/导出)
  20. GIS理论知识(三)之ArcGIS平台、SuperMap超图平台和开源平台

热门文章

  1. 《自然语言处理实战入门》第二章: NLP前置技术----网络爬虫简介
  2. 逻辑推理20201030
  3. Python全栈工程师(32:Dom)
  4. Kernel Panic (Kdump) 解析实例之二:内存溢出
  5. 弹性盒子(移动端布局)
  6. VLC视频第三方框架的音量调节
  7. RS485总线究竟能挂接多少个设备?
  8. 限制玻尔兹曼机(RBM)
  9. 以腾讯、百度、阿里为例,说说关于产品经理的事
  10. ubuntu下安装uhd+gnuradio