viewmodel的创建根据viewModelStoreOwner与key来进行判断
如果viewModelStoreOwner与key是相同的,那么创建的viewmodel就是相同的
class ShareActivity : AppCompatActivity() {
    private lateinit var viewModel: CommonViewModel
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_common)
        viewModel = ViewModelProvider(this).get("CommonViewModel", CommonViewModel::class.java)
        ShareViewModelStoreOwner.viewModelStoreOwner = this
        Log.i("TAG", "onCreate: -->$viewModel")
        val intent = Intent(this, ShareActivity1::class.java)
        startActivity(intent)
    }
}
这个类用来保存ShareActivity的viewModelStoreOwner
object ShareViewModelStoreOwner {
    lateinit var viewModelStoreOwner:ViewModelStoreOwner
}
class ShareActivity1 : AppCompatActivity() {
    private lateinit var viewModel: CommonViewModel
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_common)
        viewModel = ViewModelProvider(ShareViewModelStoreOwner.viewModelStoreOwner).get(
            "CommonViewModel",
            CommonViewModel::class.java
        )
        Log.i("TAG", "onCreate: -->$viewModel")
    }
}
这篇文章只是用来抛砖引玉。 如果大佬们有更好的办法可以在评论区留言。





















