我正在开发一个以递归方式显示通知的应用。用户可以通过递归处理程序定义他希望接收通知的频率和后台服务控件,以便知道何时发送通知。
问题是当android的内存管理器在认为必要时销毁我的服务并且应用程序停止发送通知时。
如何从后台服务发送通知并避免android的内存管理器破坏它?有什么想法吗?
答案 0 :(得分:1)
如果您想要实现您的功能,请查看 AlarmManager class
即使您的应用程序当前未运行,您也可以在特定时间运行应用程序代码。
因此,请不要随时保留服务,只需显示通知并向AlarmManager发布有关您服务的信息(请不要忘记致电stopService()
)。
然后AlarmManager将在需要时启动您的服务,服务将再次执行此操作(通知并将意图发布到AlarmManager)。
答案 1 :(得分:0)
您可以使用startForeground()
标记对系统重要的服务。
您可以设置此标记,如果终止您的服务会对用户造成干扰,例如您的服务正在播放背景音乐,那么用户会注意到他们的音乐是否停止播放。