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