2010-07-16 4 views
4

시간 간격으로 특정 웹 페이지를 폴링해야하는 Android 앱을 개발 중입니다. 특정 간격으로 실제로 페이지를 폴링하는 시점까지 도달했으며, 해당 간격은 앱의 설정 페이지에서 사용자가 변경할 수있는 SharedPreference에 지정됩니다. 그러나 네트워크 연결이 불안정 할 때 문제가 발생합니다.웹 서비스를 폴링하는 Android 서비스를 만들기위한 팁 잘못된 연결 처리

예를 들어, 서비스가 네트워크 어댑터를 "깨우기"위해 어떻게해야합니까? 절전을 위해 전화기가 잠자기 상태였던 경우 페이지를 폴링하기 전에 연결에 충분한 시간을 제공합니까? 이 폴링 동작은 24 시간마다 한 번씩 수행 할 수 있으므로 네트워크가 꺼 졌으므로 한 번의 조치를 놓치고 싶지는 않습니다 (단, 몇 초, 몇 분 또는 몇 시간 후에 켜짐).

웹 서비스가 응답하지 않거나 DNS가 응답하지 않는 경우 또는 기술적으로 연결된 경우에도 어떤 이유로 응답하지 않는 경우가 있습니다. 이 규칙을 나중에 다시 시도하기 위해 어떤 규칙을 적용해야합니까? 사용자가 특별히 인터넷을 끌 때 반복적으로 다시 시도하지는 않겠지 만 곧 만지면 재빨리 다시 시작합니다. 단지 딸꾹질이라면 데이터가 될 수 있습니다. 처음 시도한 직후에 받았습니까?

이러한 유형의 상황에 대한 예가 있습니까? 이것을 가장 잘 다루는 논리는 무엇입니까?

답변

1

체크 아웃하여 BuzzBox SDK를 귀하의 정기적 인 작업을 처리 할 수있는 : 여기에 조각입니다. 네트워크 작업 같은 작업을 선언하면 전화가 다시 연결되어

http://hub.buzzbox.com/android-sdk/

, 라이브러리는 즉시 오류를 다시 시도합니다. BroadcastReceiver를 사용 중이므로 매니페스트에서 선언해야합니다.

<receiver android:name=".NetworkChangeReceiver" 
     android:label="NetworkChangeReceiver"> 
     <intent-filter> 
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
      <action android:name="android.net.wifi.WIFI_STATE_CHANGED" /> 
     </intent-filter> 
    </receiver> 
관련 문제