【问题标题】:Android Service Won't Restart On Android 8.1Android 服务不会在 Android 8.1 上重新启动
【发布时间】:2018-10-05 20:29:49
【问题描述】:

我有一个扩展服务类的类。我从 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 线程的情况下启动此服务,但两者都不起作用

【问题讨论】:

    标签: java android android-service


    【解决方案1】:

    从 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

    【讨论】:

      猜你喜欢
      • 2013-07-13
      • 2020-01-24
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多