Android viewModel 两种初始化方式的不同

作为一名经验丰富的开发者,我很乐意帮助你学习如何实现“Android viewModel 两种初始化方式的不同”。

流程图

flowchart TD
    A(开始)
    B{选择初始化方式}
    C[使用ViewModelProvider方式初始化]
    D[使用by viewModels()扩展函数初始化]
    E(结束)
    
    A --> B
    B --> C
    B --> D
    C --> E
    D --> E

步骤表格

步骤 描述
1 选择初始化方式
2 使用ViewModelProvider方式初始化
3 使用by viewModels()扩展函数初始化
4 结束

详细步骤及代码示例

1. 选择初始化方式

在Android中,有两种常见的ViewModel初始化方式,一种是使用ViewModelProvider方式,另一种是使用by viewModels()扩展函数。

2. 使用ViewModelProvider方式初始化

使用ViewModelProvider方式初始化ViewModel,首先需要在Activity或Fragment中获取ViewModelProvider实例,然后使用该实例获取ViewModel对象。

// 获取ViewModelProvider实例
val viewModelProvider = ViewModelProvider(this)

// 使用ViewModelProvider实例获取ViewModel对象
val viewModel = viewModelProvider.get(MyViewModel::class.java)

3. 使用by viewModels()扩展函数初始化

使用by viewModels()扩展函数初始化ViewModel,只需在Activity或Fragment中调用该函数即可获取ViewModel对象。

// 使用by viewModels()扩展函数获取ViewModel对象
val viewModel: MyViewModel by viewModels()

4. 结束

通过以上两种方式,你就可以成功初始化一个ViewModel对象了。

希望这篇文章对你有所帮助,如果有任何疑问或者需要进一步了解的地方,都可以随时向我提问。祝你学习进步!