【发布时间】:2021-02-23 14:40:33
【问题描述】:
我有一个从 API 获取数据的应用程序。所以基本上,现在,该应用程序是这样工作的:
- 如果连接到互联网,获取数据并使用 Android Room 存储以供离线使用
- 如果未连接到 Internet,请检查 Room 中是否存在数据。如果存在,显示它。如果不存在,则显示错误消息。
我在网上做了一些关于如何实施有效的离线存储策略的研究,Google 建议使用 Work Manager 对请求进行排队,然后在连接时发送。
我真的想知道如何实现这个? (不是代码而是逻辑,即我应该每天安排对 API 的请求还是每次连接到互联网时?)
如果有离线应用经验的人可以提供帮助,那就太好了。
我的网络请求是通过 Retrofit 完成的,我已经创建了一个执行 API 调用的类。
【问题讨论】:
-
通过利用所有约束,每天安排一次对数据友好。在我的应用程序中,当用户如果 -> 连接到 WiFi、当前未使用移动设备、电池已插入等时,重复性工作每天发生一次。每次用户连接到互联网时安排请求都会耗尽电池电量,这显然不是一个好习惯。
标签: android kotlin android-workmanager offline-caching