2010-05-15 5 views
4

그래서 두 개의 BroadcastReceiver를 등록했습니다. 앱이 닫히면 둘 모두 적절한 시간에 실행되고 적절한 작업을 수행합니다.왜 앱이 죽으면 AlarmManager 브로드 캐스트가 취소됩니까?

앱이 닫히고 종료 된 경우 (AppKiller로 말하면) 수신자는 브로드 캐스트를 수신하지 않으며 아무런 반응이 없습니다.

아마도 메모리 부족으로 인해 상위 응용 프로그램이 종료 된 경우에도 똑같은 일이 발생하므로 해당 방송이 시작되거나 수신되도록하는 방법은 무엇입니까? API는 앱이 종료 되더라도 종료해야한다고하더라도 다른 누구도이 상황에 경험이 있습니까?

내 매니페스트는 도움이된다면 :

<!-- receivers for AlarmManager --> 
<receiver 
android:exported="true" 
android:label="Shift roster updating calendar." 
android:name="com.skooter.shiftroster.backend.service.UpdateCalendar" 
> 
</receiver> 
<receiver 
android:exported="true" 
android:label="Shift roster checking alarm." 
android:name="com.skooter.shiftroster.backend.service.SetWakeup" 
> 
</receiver> 

및 비전 아무것도 부모 응용 프로그램이 낮음으로 인해 사망하는 경우

답변

0

는 아마도 같은 일이 일어나는 알람 관리기/브로드 캐스트 리시버에서 진행되지 않습니다 메모리

잘못 추정합니다. 소위 "태스크 킬러"는 메모리 부족 상태에서 사용되지 않는 API를 이용합니다. "작업 킬러"API는 예정된 경보를 포함하여 모든 것을 누출시킵니다.

또한, 부모 앱이 처음에는 메모리에없는 것 같습니다. AlarmManager을 사용하는 요점은 "부모 앱"이 아무것도하지 않을 때 메모리를 차지하지 않기위한 것입니다.

+0

감사합니다. 상위 응용 프로그램은 백그라운드로 들어가며 시스템에 의해 닫힐 수 있습니다. 알람을 계속 실행하는 앱 종류의 점 – skooter