Android服务不会在Android 8.1上重新启动

时间:2018-10-05 20:29:49

标签: java android android-service

我有一个扩展服务类的类。我从MainActivity启动服务,但是在Android 8.1上关闭应用程序后,该服务将不会重新启动

在服务类中,我有以下代码:

 @Override
public int onStartCommand(Intent intent, int flags, int startId) {

//some code

    return Service.START_STICKY;
}

我就这样开始服务:

  MyService myService = new myService();

    final Intent seriviceIntent = new Intent(this, myService.getClass());

    if (!isMyServiceRunning(myService.getClass())) {

        new Thread(new Runnable() {
            @Override
            public void run() {
                this.startService(seriviceIntent);
            }
        }).start();

    }
    else {

        Log.e("service_log", "service is already running");
    }

我的清单文件中也有此条目

  

在android 7上运行正常,但在android 8.1上无法正常运行

我已经尝试在没有线程或ui线程的情况下启动此服务,但两者都无法正常工作

1 个答案:

答案 0 :(得分:0)

从Oreo开始,服务受到一些限制,因此您可能想看看本指南将服务迁移到Oreo:

https://developer.android.com/about/versions/oreo/background

看看这个博客:

https://android.jlelse.eu/keep-those-background-services-working-when-targeting-android-oreo-sdk-26-cbf6cc2bdb7f