2013-04-02 1 views
0

나는 데이터를 받고 데이터베이스에 저장하기 위해 웹 서비스와 통신하는 안드로이드 프로젝트를 작업 중이다. 장치가 오프라인 인 경우 전송 작업을하기 전에내 안드로이드 응용 프로그램과 웹 서비스 간의 통신 중 연결 손실을 어떻게 관리 할 수 ​​있습니까?

, 내가 연결 상태를 확인 HTTP 상태 코드 200 또는 201

비록 내가 datas를 잃을이 작업을 수행하는 동안

if (XXX.getInstance(Context).isOnline(Context)) 
{ 
//TODO Sending operation 
} 

그러나 (아래 코드를 참조)

나는 수술 전에는 관리하지만 그 동안에는 관리하지 않습니다.

알아낼 방법이 있습니까?

+0

대답을 당신에게 제시 했으니 그것을 표시하십시오. – mr0mr

답변

1

브로드 캐스트 리시버를 사용하여 연결 상태를 지속적으로 확인하십시오.

private BroadcastReceiver mReceiver = new BroadcastReceiver() 
{ 
    public void onReceive(Context context, Intent intent) 
    { 
     cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     netInfo = cm.getActiveNetworkInfo(); 

     if (netInfo != null && netInfo.isConnected()) 
     { 
     //You are still connected 
     } 
     else 
     { 
     //You have lost connection 
     } 
    } 
}; 

은 당신이 한 번 수신기의 등록을 취소해야합니다 :

registerReceiver(mReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); 

그런 다음 원하는 신호가 발견되었을 때 당신이 원하는 무엇을 쓰기 : 당신의 onCreate() 방법에 수신기를 등록

우선 (onDestroy()) 방법으로 활동을 남겨주세요.

if (mReceiver != null) 
{ 
    unregisterReceiver(mReceiver); 
} 
+1

장치가 Wi-Fi 또는 3G를 사용하여 인터넷에 연결되어 있는지 확인합니다. – mr0mr

관련 문제