我的Android服务正在突然停止,并创建了一个新的服务
我有一个非常简单的Android GPS日志应用程序,运行一项服务。该活动只不过是控制服务的启动/停止按钮。单击一个按钮,我就用start\u STICKY启动了一个新的后台服务。然后我关闭活动,服务正常运行。我可以再次运行应用程序以停止服务 该服务只是将GPS坐标记录到文件中。我正在登录每个方法和异常捕获。在某个时刻,可能是几分钟或几小时,我的服务将停止,但不会调用onDestroy,也不会引发异常。日志只是显示我上次写文件成功,然后什么都没有。我怀疑GC正在扼杀它,但我认为START_STICKY的基本意思是请尽可能长时间地运行我。30秒后,服务的一个新副本被启动,不同的PID、onCreate和onStartService像往常一样被调用我的Android服务正在突然停止,并创建了一个新的服务,android,service,Android,Service,我有一个非常简单的Android GPS日志应用程序,运行一项服务。该活动只不过是控制服务的启动/停止按钮。单击一个按钮,我就用start\u STICKY启动了一个新的后台服务。然后我关闭活动,服务正常运行。我可以再次运行应用程序以停止服务 该服务只是将GPS坐标记录到文件中。我正在登录每个方法和异常捕获。在某个时刻,可能是几分钟或几小时,我的服务将停止,但不会调用onDestroy,也不会引发异常。日志只是显示我上次写文件成功,然后什么都没有。我怀疑GC正在扼杀它,但我认为START_STI
如果某个服务终止其父活动或应用程序,Android会终止该服务吗?是否有必要在单独的线程中运行服务以防止出现这种情况?为什么不调用完整服务生命周期not complete onDestroy?服务实际上正在主线程中运行,如果您执行可能需要一些时间的工作,您应该创建一个新线程。如果您使用的是一个而不是常规服务,Android可以为您做到这一点
我应该补充一点,Android将杀死一个占用主线程超过5秒的进程。锁定主线程将导致ANR应用程序不响应,这可能是您在服务中遇到的情况。当后台服务的父活动关闭时,Android不会终止后台服务。但当设备屏幕被锁定时,它会暂停后台作业。你的问题可能与此有关。当屏幕再次解锁时,服务将从离开的位置继续工作。当屏幕锁定时,我的服务运行正常,因此我认为这不是问题所在。据我所知,服务不会暂停和恢复