【问题标题】:Android: How to synchronize the sqlite data with server [duplicate]Android:如何将sqlite数据与服务器同步[重复]
【发布时间】:2014-09-18 09:19:36
【问题描述】:

Android:当互联网不可用时如何使用 sqlite 数据库存储用户数据,然后在设备连接到互联网时自动与服务器同步存储的数据(我想要它的工作原理) 我的数据将包含字符串以及图像, 但我会在 sqlite 数据库中存储图像路径而不是图像。

如果有人可以用简单的示例代码解释我,那么我只是一个初学者将不胜感激。

【问题讨论】:

标签: android sqlite


【解决方案1】:
  1. 在您的应用程序中创建一个 SQLite 数据库,以便在本地存储所有信息。在这里,您可以获得有关为您的应用程序创建和维护 SQLite 数据库的详细教程。 SQLite Tutorial

  2. 在您的 SQLite 表中,您可以创建一个类似 isSynced 的文件,并根据记录在服务器上是否更新而将其从 0 切换到 1。

  3. 创建一个可以在应用程序启动时运行的服务,但检查是否仅在该服务未运行时才运行该服务。该服务将每 2 分钟 扫描数据库中所有 isSynced 位为 0 的表,即那些需要更新到服务器的记录,请务必检查在扫描数据库之前连接互联网,以便它可以同时发送记录。此时,您将获得需要在服务器上更新的记录列表。现在在循环中点击您的服务以将记录发送到服务器,一旦记录成功保存在服务器上,请确保将其 isSynced 位更新为 1。在这里您可以阅读详细教程在Service in Android

  4. 为了检查互联网连接,您可以尝试以下代码:

    public static boolean isConnected(Context context) {
        ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null) {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null) {
                for (int i = 0; i < info.length; i++) {
                    if (info[i].getState() == NetworkInfo.State.CONNECTED)
                        return true;
                }
            }
        }
        return false;
    }
    

您还需要在 Manifest 文件中添加以下权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

您也可以查看此tutorial,它将帮助您与 Web 服务进行通信

希望这将有助于实现您的目标。

【讨论】:

    猜你喜欢
    • 2015-01-08
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 2011-09-24
    相关资源
    最近更新 更多