Android在不同场景下处理广播
-
25-09-2019 - |
题
我已注册我的应用程序以使用警报管理器在某个特定时间发送广播,并设置接收器来收听该广播。
现在可能有2种情况:
- 操作系统认为内存不足,并将该应用程序从后台删除。Android 文档说操作系统将确保我的接收器收到我的广播。是真的吗?我该如何测试这种情况?
- 用户决定使用任何任务杀手关闭我的应用程序。在这种情况下我也会收到广播吗?如果没有的话有什么办法可以处理这种情况吗?
解决方案
操作系统认为内存不足,并将该应用程序从后台删除。
无论如何,你的接收器不会在内存中。您的接收器可用于 AlarmManager
应该在清单中注册,并且这些接收者仅在其需要的时间内存在 onReceive()
跑步。
是真的吗?
是的。
我该如何测试这种情况?
如果您的接收器已在清单中注册,则每个测试都会测试这种情况。
用户决定使用任何任务杀手关闭我的应用程序。在这种情况下我也会收到广播吗?
在 Android 2.1 及更早版本上,没有。那里的任务杀手还消除了预定的警报。
如果没有的话有什么办法可以处理这种情况吗?
事实并非如此,这就是为什么 Android 2.2 消除了这一点。
不隶属于 StackOverflow