Android ViewModel内部服务(替代)

CBe*_*4ok 11 android mvvm android-livedata android-viewmodel

我有一个服务,提供大多数时间用户可见的UI.

当我遇到问题时,我正在尝试新的应用程序架构.

MyModelviewModel viewModel = ViewModelProviders.of(this).get(MyModelviewModel.class);

但正如你所知,this只能AppCompatFragment

还有其他选择吗?或者我可以将观察者直接放在我LiveData喜欢的东西上ViewModel

viewModel.getList().observe(Playground.this, new Observer<List<TestEntity>>() {
    @Override
    public void onChanged(@Nullable List<TestEntity> items) {
        recyclerViewAdapter.addItems(items);
    }
});
Run Code Online (Sandbox Code Playgroud)

Ava*_*ing 11

LiveData可以单独使用,无需ViewModel使用observeForever(Observer<T> observer),或者observe(LifecycleOwner owner, Observer<T> observer)在提供适当的LifecycleOwner实例时,可以LifecycleOwner在服务或视图中实现.

ViewModelProviders只是提供了一个高速缓存ViewModel为每个Fragment或者Activity,您可以创建ViewModel直接new MyModelviewModel().