gpt4 book ai didi

Service 中的 Android ViewModel(备选)

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:01:55 34 4
gpt4 key购买 nike

我有一项服务可以提供大多数时间对用户可见的 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);
}
});

最佳答案

LiveData可以在没有ViewModel的情况下独立使用, 你可以使用 observeForever(Observer<T> observer) , 或 observe(LifecycleOwner owner, Observer<T> observer)当您提供适当的 LifecycleOwner 时例如,你可以实现 LifecycleOwner在您的服务或 View 中。

ViewModelProviders只提供 ViewModel 的缓存对于每个 FragmentActivity ,您可以创建自己的 ViewModel直接通过 new MyModelviewModel() .

关于Service 中的 Android ViewModel(备选),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48716548/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com