IntentService
을 사용하여 원격 소스에서 데이터를 가져옵니다. 서비스가 데이터를 가져 오면 sendBroadcast(intent)
을 사용하여 브로드 캐스트합니다.IntentService에서 sendBroadcast()를 올바르게 처리합니다.
내 주요 활동에서 sendBroadcast()
에 의해 전송 된 데이터를 처리하기 위해 onReceive()
을 정의합니다.
을 사용하여 수신기를 onResume()
에 등록하고 onPause()
에 등록을 취소하고 unregisterReceiver()
을 사용합니다. 이는 http://developer.android.com/reference/android/content/BroadcastReceiver.html에서 권장되는 내용을 따릅니다.
sendBroadcast()
이 활동이 onPause()
(수신자가 등록 취소 된 위치) 인 동안 데이터를 브로드 캐스트하면 브로드 캐스트가 처리되지 않습니다. onPause()
다음에 onResume()
이 있으면 수신자가 다시 등록되지만 IntentService는 이미 작업을 완료했으며 수신자가 청취 할 내용이 없습니다. 질문 : 방송에 이미 일어난 일을 활동에 알리는 좋은 패턴이 있습니까?
GreenRobot의 EventBus 또는 OTTO와 같이 EventBus를 사용하십시오. 다루기가 훨씬 쉬울 것입니다. –
@MarcinOrlowski 예! :) –
알림 또는 바운드 서비스 패턴을 사용하지 않는 이유는 무엇입니까? – pskink