【问题标题】:Re-upload data when internet connection is back互联网连接恢复后重新上传数据
【发布时间】:2016-06-29 12:26:57
【问题描述】:

我正在开发一个 Android 应用程序,它使用 Volley 将用户输入的一些数据发送到我的服务器。我还将这些数据保存在本地 SQLite 数据库中。这一切都很好。如果 Internet 连接丢失,则会出现问题。我怎么知道何时必须尝试重新上传数据。

如果网络连接丢失,我可以使用 BroadcastReceiver 找出连接何时建立。但是,即使设备已连接到网络但无法访问互联网,我如何确保此功能正常工作。

【问题讨论】:

    标签: android


    【解决方案1】:

    试试这个方法

    1.在您要将数据上传到某些View(例如ListView)之前,请检查您的Internet Connection

    If Available, upload server data.
    else
    upload local/saved data.
    

    这可能对你有帮助

    【讨论】:

      【解决方案2】:

      创建一个广播接收器来监听互联网变化并注册它:

       class NetworkStateBroadcastReceiver extends BroadcastReceiver {
       public void onReceive(Context context, Intent intent) {
       ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
       NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
       if(networkInfo.isConnected()){
           //netwok just connected, upload
       }
      }
      

      创建一个实例并注册它。(可能在应用程序类中,它在整个应用程序中运行)

       reciever = new NetworkStateBroadcastReceiver();
       registerReceiver(mReciever, new intentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
      

      【讨论】:

      • 您好,我尝试了您的解决方案。如果我无法连接到服务器的原因是因为我的网络断开了,它工作正常。但是,如果我连接到同一个网络但互联网随后断开连接,我怎么知道互联网连接何时恢复。 (我尝试在连接到 WiFi 时拔下以太网电缆,然后将其放回去。我希望在互联网连接恢复时收到通知。)
      • IntentFilter 过滤器 = 新的 intentFilter(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION);使用这个互联网过滤器并编写另一个广播接收器。参考这个:stackoverflow.com/questions/9353005/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      相关资源
      最近更新 更多