首页 > 解决方案 > 粘性服务被杀死并重新启动计划为 1000 毫秒,但从未重新启动

问题描述

我有一个正在运行的粘性服务,有时会被一条消息杀死:

2018-11-19 06:54:42.208 1602-3282/? I/ActivityManager: Force stopping com.example.myapp appid=10309 user=0: from pid 16033
2018-11-19 06:54:42.208 1602-3282/? I/ActivityManager: Killing 14900:com.example.myapp/u0a309 (adj 200): stop com.example.myapp
2018-11-19 06:54:42.210 1602-3282/? W/ActivityManager: Scheduling restart of crashed service com.example.myapp/.MyService in 1000ms
2018-11-19 06:54:42.217 1602-3282/? I/ActivityManager:   Force stopping service ServiceRecord{ceedda0 u0 com.example.myapp/.MyService}

但是在 1000 毫秒之后似乎什么都没有发生。

我从哪里开始调查?

来自AndroidManifest.xml

<service
    android:name=".MyService"
    android:enabled="true">
</service>

标签: androidandroid-service

解决方案


确保您的服务接受null意图,并在接收到意图时恢复它正在执行的操作null看这里

如果您在使用华为手机时遇到此问题,您应该知道这是一个已知问题。华为手机的安卓操作系统一旦被杀,就不会自动重启后台服务,尽管谷歌已经声明了粘性服务。参见例如:

华为支持中心

阻止您的华为智能手机杀死后台应用程序

在华为设备上为 Opentalk 启用自动启动


推荐阅读