Почему трансляция AlarmManager отменяется, когда приложение убивает?

StackOverflow https://stackoverflow.com/questions/2840750

Вопрос

Хорошо, так что у меня есть два зарегистрированных широководства. Когда приложение закрыто, они оба огонь в соответствующие времена и делают соответствующие вещи.

Если приложение закрыто, затем убит (скажем, с помощью 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> 

И ничего эзотерического не происходит в AlliManager / Broadcastrecevers

Это было полезно?

Решение

Предположительно то же самое происходит, если родительское приложение погиб из-за низкой памяти

Вы предполагаете неправильно. Так называемые «убийцы задач» эксплуатируют определенную API, которую не используется в условиях низкой памяти. «Killer Task» API Nukes все, включая запланированные аварийные сигналы.

Кроме того, ваше родительское приложение, надеюсь, не в памяти в первую очередь. Вся точка использования AlarmManager Так что ваше «родительское приложение» не приходит во время памяти, когда она ничего не делает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top