Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android服务中断_Android_Service - Fatal编程技术网

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()
直到下一次报警