Jetpack -- (二)ViewModel
ViewModel的诞生:
- 瞬态数据丢失
- 异步调用的内存泄漏
- 类膨胀提高维护难度和测试难度
添加依赖
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1' |
- 不要向ViewModel中传入Context,会导致内存泄漏
- 如果要使用Context,请使用AndroidViewModel中的Application
简单应用:
class MyViewModel: ViewModel() { |
class MainActivity : AppCompatActivity() { |
在Fragment中使用ViewModel
private lateinit var myViewModel: MyViewModel |
在Activity中使用委托
导入依赖:
implementation 'androidx.activity:activity-ktx:1.6.0-alpha05' |
private val viewModel: MyViewModel by viewModels() |
或者直接使用
val viewModel by lazy { |
在Fragment中使用委托
添加依赖
implementation "androidx.fragment:fragment-ktx:1.5.1" |
使用:
private val myViewModel: MyViewModel by activityViewModels() |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 码行!
评论
ValineDisqus