java - 如何在我的 Android 应用程序中离线时保存数据?

标签 java android offline

我正在用 Java 为 Android 创建一个应用程序。我可以将信息发送到网络服务,但是当我离线时我想存储信息并且当手机连接到互联网时我想将其发送到网络服务。
谁能帮我?
谢谢

最佳答案

  • 将数据存储在 SQLite 数据库中。您可以阅读here .
  • 如果连接发生变化,请检查 BroadcastReceiver 并更新在线 DB 并从 Sqlite DB 中删除内容。
    public void onReceive(Context context, Intent intent) {
        String s = intent.getAction();
        if (s.equals("android.net.conn.CONNECTIVITY_CHANGE")) {
            if (IsNetworkAvailable(context)) {
                // update your online data-base and delete all rows from SQlite
            }
        return;
       }
    }
    

  • 方法是网络可用:
    public static boolean isNetworkAvailable(Context mContext) {
        Context context = mContext.getApplicationContext();
        ConnectivityManager connectivity = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity == null) {
            return false;
        } else {
            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;
    }
    

    您还需要权限:
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    

    关于java - 如何在我的 Android 应用程序中离线时保存数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34497864/

    相关文章:

    java - 使用 Java 和 Hibernate 从存储过程获取返回值(标量),而不是结果表

    java - Swagger Spring API - xmlModelPlugin 错误

    java - 在 Eclipse 3.5 上安装较旧的 TestNG 插件时出现问题

    android - 无法在 Fragment 中找到当前位置

    html - chrome ios 应用程序缓存不清除

    java - 验证文本输入时如何避免 try-catch

    java - 当我使用 LayoutInflater 时按钮 View.OnClickListener

    android - 横幅固定宽度

    html - 如何从文件夹(需要可移动)运行离线演示页面?

    javascript - 在 couchDb 中存储大型 JSON 对象的好方法是什么?