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

标签 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");
    }

我的 list 文件中也有这个条目

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

在 android 7 上它工作正常但在 android 8.1 上不行

我已经尝试在没有线程的情况下或通过 ui 线程启动此服务,但两者都不起作用

最佳答案

从 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

关于java - Android 服务不会在 Android 8.1 上重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52672925/

相关文章:

java - 邻接矩阵 DFS 遍历以在有向图 (Java) 中查找从 x 到 y 的路径数

java - 如何更改RoseIndia.com中 "Spring 3 MVC Login Form Example"处的包名称?

java - 检测哪个复选框被触摸?数组 Java Android Studio

Android Camera2 API MediaRecoder 如何捕获图像(不是流也不是文件)

android - 来自服务的 overridePendingTransition 给出错误

java - Android 服务 ("startService & stopService") 和播放/停止按钮合二为一

java - 如何使用 bufferedreader 和 treemap 打印文本中最常见的单词? - java

Android谷歌地图获取多个位置之间的最短路径

java - Handler.handleMessage 在测试中没有被调用,但是在应用中被调用

java - 滑动时加速列表滚动 - Android。如何?