Pourquoi les émissions AlarmManager sont annulés lorsque l'application est tué?
-
27-09-2019 - |
Question
Ok donc j'ai deux BroadcastReceiver enregistré. Lorsque l'application est fermé ils à la fois le feu au moment opportun et faire les choses appropriées.
Si l'application est fermée puis tué (dire avec un AppKiller), les récepteurs ne reçoivent jamais leurs émissions, et rien ne se passe.
On peut supposer que la même chose se produit si l'application mère est tué à cause de la faible mémoire, alors comment puis-je assurer que ces émissions sont tirées / reçues. Les états de l'API que même si l'application est tué en cas d'incendie, que quelqu'un d'autre ont l'expérience de cette situation?
Si cela aide mon manifeste est:
<!-- 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>
et ésotérique rien ne se passe dans le AlarmManager / BroadcastReceivers
La solution
On peut supposer que la même chose se produit si l'application mère est tuée en raison du faible mémoire
Vous présument à tort. Les soi-disant « tueurs de travail » exploitent une API particulière, qui ne soit pas utilisé dans des conditions de faible mémoire. L'API "task killer" armes nucléaires tout, y compris les alarmes programmées.
En outre, votre application parent ne devrait plus être en mémoire en premier lieu. Le point entier de l'utilisation AlarmManager
est donc votre « application parent » ne prend pas autour de la mémoire quand il ne fait rien.