gpt4 book ai didi

Android - 如何从小部件访问房间数据库

转载 作者:太空狗 更新时间:2023-10-29 13:03:37 24 4
gpt4 key购买 nike

我想访问我的小部件类中的 Room DB,以根据存储的数据更新小部件。

这里的问题是 ViewModelProvider 需要 fragment 或 Activity 才能使用..

ViewModelProviders.of(fragment).get(YourViewModel.class);

app widget 类中没有哪个是怎么实现的?

最佳答案

如果您使用 RemoteViewsService填充您的小部件 UI,然后您可以通过在其 onDataSetChanged() 方法中包含 DAO 查询来避免使用 AsyncTask,而不是在 AppWidgetProvider 的 onUpdate() 方法中。如 onDataSetChanged() documentation 中所述,

...expensive tasks can be safely performed synchronously within this method. In the interim, the old data will be displayed within the widget.

这里的另一个优点是您可以在应用的 ViewModel 观察器的 onChanged() 方法中包含对 AppWidgetManager.notifyAppWidgetViewDataChanged() 的调用;这将触发 onDataSetChanged(),每次 Room 数据库更改时小部件都会更新,而不是仅在 onUpdate() 的固定时间间隔内更新。

关于Android - 如何从小部件访问房间数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51973927/

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