2016-08-16 1 views
1

인터넷이 다시 연결될 때 http 포스트를 보낼 수있는 방법이 있습니까? 다음은 시나리오입니다.인터넷에 다시 연결 한 후 서버에 http 포스트 요청을 보냅니다.

시나리오 : 인터넷이 연결되면 POST 요청이 자동으로 서버에 전송합니다 인터넷에 연결되어 있지 않음 2.이없는 경우 1. 예를 들어, 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" />