2016-08-16 5 views
1

インターネットに再接続するときにhttp投稿を送信する方法はありますか? 以下はシナリオです。インターネットに再接続した後にサーバーにhttp投稿要求を送信する

シナリオ: 1.インターネットに接続 2がない場合、インターネットが接続されると、ポストの要求が自動的にサーバーに送信されます例えば、JSONデータをHTTPポストを送信します。

+0

[Android優先ジョブキュー](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" /> 
関連する問題