2016-08-16 33 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" /> 
相關問題