重新连接互联网时自动发送失败的网络请求的最佳方法是什么?

时间:2015-04-11 09:12:22

标签: android performance

默认情况下,哪些库会处理此方案?如果不使用库,实现这个的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

在db中维护一个SYNC_FLAG ... 如果网络连接打开,则查找SYNC_FLAG为0的条目并重新发送它们。 一旦获得成功,将SYNC_FLAG的表改为1。

答案 1 :(得分:0)

您可以使用服务检查互联网连接何时重新开启:

public class NetWatcher extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

   ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo info = cm.getActiveNetworkInfo();

    if(intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) {
        NetworkInfo networkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
        if(networkInfo.isConnected()) {
             /* Internet is back on */
             /* Check if any requests need to be send */
        }
    }
}

此服务将在您的Wifi连接可用时检测到。您应该检查一下您的请求是否因互联网连接而失败,然后在方法内再次执行请求(networkInfo.isConnected())。