【Android,Kotlin】ViewModelProviders‘ is deprecated. Deprecated in Java

朱雀 2022-11-10 05:34 342阅读 0赞

ViewModelProviders’ is deprecated. Deprecated in Java,关于ViewModelProviders在新版本弃用的问题

今天在使用lazy懒加载获取PlaceViewModel实例的时候,竟然发现ViewModelProviders被官方弃用了,好家伙,如下图
在这里插入图片描述
看来这么写是不行了,有没有替代的解决方案呢

  • 翻阅网上的内容还是采用掉包的方式拉回弃用的包,或者以new的形式,显然是不适用的

    val viewModel by lazy { ViewModelProviders.of(this).get(PlaceViewModel::class.java) }

直到我找到了这篇帖子
在这里插入图片描述

  • 帖子传送门stack overflow:Kotlin does not understand ViewModelProviders.of(activity ?: fragment)
  • 如果你正在使用Androidx,所以应该添加两条线的生命周期:

解决方案

  • get it!

//原语句
val viewModel by lazy { ViewModelProviders.of(this).get(PlaceViewModel::class.java) }
改为

  1. val viewModel1 by lazy { ViewModelProvider(this).get(PlaceViewModel::class.java) }

发表评论

表情:
评论列表 (有 0 条评论,342人围观)

还没有评论,来说两句吧...

相关阅读