0

可能重复:
我的 Android 服务突然停止并创建了一个新服务

我有一个简单的 Android 活动,带有一个按钮来启动和停止长时间运行的 Android 服务(它执行一些简单的日志记录)。启动服务后,我会关闭应用程序(活动),然后该服务应该无限期地在后台运行。

但事实并非如此。在随机时间,此服务所属的应用程序对象由操作系统重新创建,然后我的服务也是如此。因此,不仅仅是服务被调用 onStartCommand,而是首先调用 onCreate,创建一个新服务。我不知道旧的会发生什么,它就消失了 - 没有调用 onDestroy 或其他任何东西。

我以 START_STICKY 身份运行服务,我没有以任何方式使用主 UI 线程,所以那里应该没有问题。我只是不明白问题是什么。

服务运行良好,然后繁荣,我的应用程序得到一个 onCreate,我的服务得到一个 onCreate 和 onStartCommand,并且在日志记录中间的旧服务消失了,没有任何通知或警告。新服务开始记录。我最终得到一堆断开连接的日志,而应该只有一个。

4

1 回答 1

1

通常,操作系统会重新启动长时间运行的服务。您可以使用 start_redeliver_intent 而不是使用 start_sticky 标志,这将保留您启动服务的意图并以相同的意图重新启动服务,这在 Start_sticky 中不是这种情况。

此链接可能会有所帮助

http://developer.android.com/reference/android/app/Service.html#START_REDELIVER_INTENT

于 2012-05-09T10:26:37.253 回答