2011-08-31 45 views
-1

在几个应用程序中,我们使用本地服务(例如)记录位置。这段时间可以工作一段时间(例如4小时或150公里),然后Android关闭(不再需要)服务。该服务不会崩溃它的Android决定关闭服务。如果Android关闭,需要通知服务

这是写在文档中,没关系,但我需要找出服务已关闭。我怎样才能做到这一点?

我想尽快重新启动我们的服务。你们如何发现一款服务已被Android关闭?你用完了吗?

在此先感谢。

+0

想知道为什么我收到downvote而没有解释。不好的风格。 –

回答

0

您是否试图从Service.onStartCommand()方法中返回Service.START_STICKYService.START_REDELIVER_INTENT

+0

感谢您的回答。我总是使用Service.START_STICKY。 –

+0

你的服务在Android被销毁后重启吗? – Michael

+0

不,定义。文档称Android会尝试重新启动,但也不能保证。所以没有onDestroy保证和没有重新启动保证。真的很想知道你们如何解决这个问题。 –

0

应该调用您的服务的onDestroy方法,因为它被Android OS销毁。此外,您应该在日志中看到通常在短时间内重新启动您的服务的日志,这些日志会在日志中显示,因为它已被销毁,根据我的经验,它会在重新引导之前大约15-30秒。 (您应用中的每项服务都将以随机顺序启动,因此请注意,某些服务是否依赖于您的应用中的其他服务。)

+0

嗯,我的服务从未重新启动。并且onDestroy永远不会被调用。我知道肯定是因为像NotificationBar中的图标以及更多内容都会在onDestroy中删除,并且每当Android决定“不再需要”我的服务时,这些项目仍然处于活动状态,并且服务已经消失。我在某处读到,在服务终止时,你会收到onDestroy没有任何保证。 –