在android中将SQLite数据库与远程mysql数据同步

Posted

技术标签:

【中文标题】在android中将SQLite数据库与远程mysql数据同步【英文标题】:Syncing SQLite database with remote mysql data in android 【发布时间】:2016-11-28 04:50:57 【问题描述】:

如何在android中同步SQLite数据库和远程mysql数据? 为了清楚起见,我想知道 sqlite 数据和远程 mysql 之间的同步是如何工作的。即,当远程 mySQL 数据库更新时,SQLite 数据也应该在没有任何按钮按下或向下滚动的情况下更新?如何使用 Android Studio 和 Wamp 服务器实现它? 提前致谢!

【问题讨论】:

【参考方案1】:

我猜你可以在你的安卓应用程序的服务中使用广播接收器。如果没有,您可以编写一个服务,在服务内部,您可以使用计时器向服务器发送 http 请求并保持同步。要了解有关将 SQlite 数据库与远程 mysql 数据库同步的知识,请参阅本教程,如果您需要它在不按下按钮的情况下发生,那么在服务中实现以下教程中的代码并记住使用计时器。 TUTORIAL LINK

【讨论】:

【参考方案2】:

我不知道有什么方法可以在你的 android 的 sqlite 数据库上制作你的 mysql 数据库的镜像。在手机上同步数据时,我可以考虑两种方法。第一个是使用同步适配器。但这只会服务器中的数据,因此您不会在更新完成后立即进行同步。

第二个是使用推送通知。使用 FCM、firebase 云消息传递或 GCM、google 云消息传递,您可以告诉服务器向与其连接的每部手机发送消息。然后,您的手机可以处理该消息并与您的数据库同步。显然,在任何一种解决方案中,您都无法直接访问您的数据库,因为这会带来巨大的安全问题,因此您需要通过一个带有 API 的 Web 服务器来将您的应用程序连接到您的数据库。

这里有一些关于FCM、Syncadapters等的有用链接

【讨论】:

以上是关于在android中将SQLite数据库与远程mysql数据同步的主要内容,如果未能解决你的问题,请参考以下文章

在 android 中将 SQLite 数据从平板电脑更新到手机

将 Android 应用上的 SQLite DB 与远程 MySQL DB 同步

如何在android中将arraylist或vector插入SQLite数据库?

将 SQLite/Android 数据库表同步到远程 MySQL 数据库表(通过 PHP)

如何在 Android 中将 Arraylist 插入 sqlite?

在android中将arraylist <String>值插入sqlite