Android 开始工作,但不工作

Android 开始工作,但不工作,android,service,Android,Service,我问了一个关于保持服务有效性的问题,但我没有找到解决方案,所以我还有一个更简单的问题 android doc表示,如果android在低内存状态下返回onStartCommand时使用START_STICKY终止服务,如果我的判断正确,它将重新创建该服务 但是这个服务在一段时间后在运行任务时被终止并消失,但它没有被重新创建!我在手机上用安卓4.4.2运行这项服务,当屏幕打开时,它存活了大约20分钟 但当屏幕关闭时,它会在大约3或4分钟后消失。。。在我的平板电脑上(同样是安卓4.4.2),它停留的

我问了一个关于保持服务有效性的问题,但我没有找到解决方案,所以我还有一个更简单的问题

android doc表示,如果android在低内存状态下返回onStartCommand时使用START_STICKY终止服务,如果我的判断正确,它将重新创建该服务

但是这个服务在一段时间后在运行任务时被终止并消失,但它没有被重新创建!我在手机上用安卓4.4.2运行这项服务,当屏幕打开时,它存活了大约20分钟 但当屏幕关闭时,它会在大约3或4分钟后消失。。。在我的平板电脑上(同样是安卓4.4.2),它停留的时间更长,大约4到5个小时,然后又消失了(我在不同的测试中得到了不同的结果)。我甚至在安卓5上进行了测试,结果与安卓4.4.2的平板电脑相似

我是不是遗漏了什么?我认为在我调用stopService之前,当我们使用return START\u STICKY时服务不会被破坏

这是我的服务:

public class MyService extends Service {
    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return START_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    public void onDestroy() {
        super.onDestroy();
    }
}
糟糕英语的sry:)

可能对某人有用--

这个问题与基于AOSP的ROM设备无关,所以安卓4.4.2版本不是问题

因此,有一些设备(华为、熔岩、小米)附带了预装的启动管理器或节能器,它们运行在定制的安卓ROM上。因此,这些设备通常不会提供粘性服务


所以,可能的选择是实现类似看门狗定时器的东西,并在两者之间检查服务,如果不启动,服务可以再次运行。但可能的影响可能是电池消耗。

该服务确实重新创建了,没有重新启动。 如果重写onCreate并执行Log.d或Toast,您将看到在活动和应用程序被销毁后调用onCreate


因此,在重新创建后保持其运行的诀窍是在
onCreate
方法上执行代码,然后使用
onStart命令
返回START\u STICKY

可能与问题有关。您测试了哪个设备?Thx获得了这么好的提示,这正是我运行小米redmi note 3 pro时遇到的问题安卓5.1!小米,奥利奥,我可以证实这种行为。已重新创建服务,但未重新启动。谢谢你的意料之外的想法!