2016-08-16 95 views
1

当互联网重新连接回来时,有没有什么方法可以发送http post? 以下是这种情况。互联网重新连接后发送http请求到服务器

场景: 1.发送HTTP POST,例如JSON数据时没有互联网连接 2.一旦网络被连接在发布请求将自动发送到服务器。

+0

考虑使用[Android Priority Job Queue](https://github.com/yigit/android-priority-jobqueue)。 这允许使用需要网络的参数排队作业。 – MrOnyszko

+0

@MrOnyszko thx回复。我正在尝试,它正在工作。但是,有没有办法像AsycnTask中的onPostExecute方法?这意味着在执行成功后,我可以发送一个ToastMessage。 – user3606920

+0

太棒了! [EventBus](https://github.com/greenrobot/EventBus)将帮助您发送入队作业的消息。 – MrOnyszko

回答

0

1.创建自定义的广播接收机:

private BroadcastReceiver connectionListener = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      NetworkInfo networkInfo = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); 
      if ((networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI) & (networkInfo.isConnected())){ 
       sendBroadcastMessage(getString(R.string.FORCED_NETWORK_CONNECTION_ESTABLISHED)); 
       Log.w(LOG, "wifi connection established"); 
      } 
      else{ 
       sendBroadcastMessage(getString(R.string.FORCED_NETWORK_CONNECTION_LOST)); 
       Log.e(LOG, "no wifi connection"); 
      } 
     } 
    }; 

2.注册广播接收器:

registerReceiver(connectionListener, new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE")); 

3.从取决于你需要添加的权限是什么:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
相关问题