如何在非 FragmentActivity 上使用 ViewModelProviders.of() 获取 ViewModel?

How to fetch the ViewModel using ViewModelProviders.of() on non-FragmentActivity?

private void subscribeToModel() {
    final MyViewModel model = ViewModelProviders.of(this)
            .get(MyViewModel.class);

    // Update the list when the data changes
    model.getItems().observe(this, new Observer<List<Item>>() {
        @Override
        public void onChanged(@Nullable List<Item> items) {
            // Do something useful
        }
    });
}

上面的代码在 'AppCompatActivity' 或 'FragmentActivity' 上运行良好。 但是,它不适用于另一种类型的 Activity(例如,对我来说:GvrActivity)。 ViewModelProviders.of() 期待 'FragmentActivity'.

还有其他观察数据库的方法吗?

关于DB,我用的是ROOM

回答我自己的问题。

观察 Room 数据库是解决方案。感谢 CommonsWare。

这是完整的解决方案:

private void subscribeToModel() {
    final DatabaseCreator databaseCreator = DatabaseCreator.getInstance();
    LiveData<List<Item>> itemLiveData = databaseCreator.getDatabase().itemDao().getAllLiveData();
    if(itemLiveData != null) {
        itemLiveData.observe(this, new Observer<List<Item>>() {
            @Override
            public void onChanged(@Nullable List<Item> items) {
                // Do something useful
            }
        });
    }
}