Android 活动中的生命周期未在ViewModel中触发

Android 活动中的生命周期未在ViewModel中触发,android,kotlin,android-jetpack,android-viewmodel,Android,Kotlin,Android Jetpack,Android Viewmodel,每当调用活动的onCreate时,我都试图在viewModel中执行一个方法(fun onCreateViewModel())。但该方法没有得到执行 视图模型 class MainActivityViewModel(startingCount : Int) : ViewModel(), LifecycleObserver { var count = 0 init { count = startingCount } fun getCurrentC

每当调用活动的onCreate时,我都试图在viewModel中执行一个方法(fun onCreateViewModel())。但该方法没有得到执行

视图模型

class MainActivityViewModel(startingCount : Int) : ViewModel(), LifecycleObserver {
    var count = 0

    init {
        count = startingCount
    }

    fun getCurrentCount(): Int{
        return count
    }

    fun getUpdatedCount(): Int {
        count ++
        return count
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    public fun onCreateViewModel(){
        Log.i("Jts","   ViewModel created")
    }
}
活动

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding
    private var user = User("Jeffin T", "26")
    private lateinit var mainActivityViewModel: MainActivityViewModel
    private lateinit var mainActivityViewModelFactory: MainActivityViewModelFactory


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
//        mainActivityViewModel = ViewModelProviders.of()
        mainActivityViewModelFactory = MainActivityViewModelFactory(123)
        mainActivityViewModel = ViewModelProviders.of(this, mainActivityViewModelFactory)
            .get(MainActivityViewModel::class.java)
        binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
        binding.tvName.text = mainActivityViewModel.getCurrentCount().toString()
        binding.user = user
        binding.btnName.setOnClickListener {
            binding.tvName.text = mainActivityViewModel.getUpdatedCount().toString()
        }
    }

    private fun displayGreeting() {
        binding.apply { tvName.setText("Hello! " + user?.name) }
    }
}

您必须添加viewmodel作为活动生命周期的观察者。您需要将此添加到活动中

getLifecycle().addObserver(viewModel)

您必须添加viewmodel作为活动生命周期的观察者。您需要将此添加到活动中

getLifecycle().addObserver(viewModel)