我已经使用REST API开发了Android应用程序,因此后端可以处理所有业务逻辑,但是仅当移动设备具有互联网时才可以使用,如果互联网由于某种原因无法工作,那么我的应用程序就没有用了,因此需要开发离线模式逻辑,以便无论是否已连接互联网,我的应用程序都必须能够正常工作。 我可以在离线模式下做一件事,该应用程序将数据保存在本地,但是当它联机时,它必须自动将数据发送到数据库,因此需要构建该逻辑。
任何建议或答案将不胜感激。
感谢进阶...
答案 0 :(得分:2)
您还没有提到用来调用API的网络库。
因此,建议之一是使用squere中的 Retrofit
Retrofit还提供 cache machanism ,因此,使用此功能,您将在应用程序中缓存数据。
如果在Internet可用的情况下进行任何api调用,则对缓存数据进行改进,以便稍后在您重新调用该API时,即使Internet不可用,也会向用户显示数据。
它还允许您定义缓存大小,何时缓存,何时覆盖缓存等
您也不需要管理任何本地数据库
答案 1 :(得分:1)
要实现离线功能,需要执行多个步骤。
加载数据:
您需要查看Jetpack以获得有关app architecture的提示。构建类似于该架构的结构,可帮助您在应用程序中提供离线功能。
这是在用户打开应用程序时从本地数据库或服务器加载数据的第一种情况。
更新服务器数据:
在脱机期间,将条目保存到本地数据库。使用Job Scheduler或Work Manager监听连接更改(或创建一个定期工作或每天在互联网连接受限的情况下运行的工作)以将数据与服务器同步。
跨设备同步
如果用户登录了多个设备,则向其他设备发送FCM通知以提取更新的数据。