我有一个简单的 Android 活动,带有一个按钮来启动和停止长时间运行的 Android 服务(它执行一些简单的日志记录)。启动服务后,我会关闭应用程序(活动),然后该服务应该无限期地在后台运行。
但事实并非如此。在随机时间,此服务所属的应用程序对象由操作系统重新创建,然后我的服务也是如此。因此,不仅仅是服务被调用 onStartCommand,而是首先调用 onCreate,创建一个新服务。我不知道旧的会发生什么,它就消失了 - 没有调用 onDestroy 或其他任何东西。
我以 START_STICKY 身份运行服务,我没有以任何方式使用主 UI 线程,所以那里应该没有问题。我只是不明白问题是什么。
服务运行良好,然后繁荣,我的应用程序得到一个 onCreate,我的服务得到一个 onCreate 和 onStartCommand,并且在日志记录中间的旧服务消失了,没有任何通知或警告。新服务开始记录。我最终得到一堆断开连接的日志,而应该只有一个。