【发布时间】:2013-08-25 22:29:59
【问题描述】:
如果设备资源不足,Android中的Service将被杀死。如何使守护进程或服务永远存在并且永不退出?
【问题讨论】:
如果设备资源不足,Android中的Service将被杀死。如何使守护进程或服务永远存在并且永不退出?
【问题讨论】:
使用Service.startForeground(int id, Notification notification):http://developer.android.com/reference/android/app/Service.html#startForeground(int,android.app.Notification)
会告诉系统该服务是用户需要的,不应该被杀死。 API 会强制您在此期间显示通知图标。
但是,系统可以在极端情况下杀死它想要的任何东西以回收内存。
【讨论】:
启动的服务可以使用 startForeground(int, Notification) API 将服务置于前台状态,系统认为它是用户主动意识到的,因此不是内存不足时杀死的候选人。 (理论上,在当前前台应用程序的极端内存压力下,服务仍然可能被杀死,但实际上这应该不是问题。)
【讨论】: