Android服务中断
我正在开发一个位置跟踪应用程序。我有应用程序的机制,可以定期检测服务中的位置变化 我的服务持续运行,这正是我想要的,但偶尔我发现服务已停止。在我的清单中,我在我的主要活动上设置了Android服务中断,android,service,Android,Service,我正在开发一个位置跟踪应用程序。我有应用程序的机制,可以定期检测服务中的位置变化 我的服务持续运行,这正是我想要的,但偶尔我发现服务已停止。在我的清单中,我在我的主要活动上设置了android:configChanges=“orientation | keyboardHidden”,这样就不会在每次方向改变时重新创建,但我是否需要为每个活动和服务都这样做 另外,可能是操作系统扼杀了我的服务。在这种情况下,有没有办法强迫系统忽略我的服务,或者在设定的分钟数后自动重新启动服务 谢谢 我的服务始终如一
android:configChanges=“orientation | keyboardHidden”
,这样就不会在每次方向改变时重新创建,但我是否需要为每个活动和服务都这样做
另外,可能是操作系统扼杀了我的服务。在这种情况下,有没有办法强迫系统忽略我的服务,或者在设定的分钟数后自动重新启动服务
谢谢
我的服务始终如一地运行,这正是我想要的
你的用户可能不同意
但我是否需要为每项活动和服务都这样做
您可能不应该对任何组件执行此操作。这主要适用于UI过于复杂而无法在新活动(例如,某些游戏、视频播放)中成功重新渲染的情况,或者活动也被锁定到特定方向的情况。无论如何,服务没有android:configChanges
属性
可能是操作系统扼杀了我的服务
操作系统将关闭泄漏的服务,如您的服务,以防止电池过度消耗
有没有办法迫使系统忽略我的服务
您可以使用startForeground()
或者在设定的分钟数后自动重新启动服务
从onStartCommand()
返回START\u STICKY
(或者可能是START\u REDELIVER\u INTENT
)
最好是重新考虑你的方法。保持位置跟踪——特别是GPS——是一个巨大的电池消耗。应该在后台持续监视位置的应用程序相当少。如果您只需要每隔一段时间(例如,每15分钟)进行一次位置修复,请使用AlarmManager
启动您的服务以获得修复,然后让服务调用stopSelf()
直到下一次报警