Android java.lang.IllegalArgumentException: 没有这样的服务 ComponentInfo JobScheduler
Android java.lang.IllegalArgumentException: No such service ComponentInfo JobScheduler
我试图创建一个简单的 JobScheduler
作业,只是为了看看它是如何工作的。
但是我一直在运行时遇到这个异常,我无法弄明白,因为我一步一步地按照指南进行操作。
这是我的电话:
ComponentName componentName = new ComponentName(getApplicationContext(), TestService.class);
JobInfo jobInfo = new JobInfo.Builder(1,componentName).setPeriodic(300000)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY).build();
JobScheduler tm = (JobScheduler)getApplicationContext().getSystemService(Context.JOB_SCHEDULER_SERVICE);
tm.schedule(jobInfo);
TestService
除了扩展 JobService
.
什么都不做
您需要将权限 android.permission.BIND_JOB_SERVICE
添加到您的 AndroidManifest.xml
...
<service android:name=".TestService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="true"/>
...
</application>
我的问题是我的服务被定义为静态内部 class。一旦我将服务 class 移动到它自己的 Java 文件
中,问题就自行解决了
尝试清理项目。这是我的情况。
我试图创建一个简单的 JobScheduler
作业,只是为了看看它是如何工作的。
但是我一直在运行时遇到这个异常,我无法弄明白,因为我一步一步地按照指南进行操作。
这是我的电话:
ComponentName componentName = new ComponentName(getApplicationContext(), TestService.class);
JobInfo jobInfo = new JobInfo.Builder(1,componentName).setPeriodic(300000)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY).build();
JobScheduler tm = (JobScheduler)getApplicationContext().getSystemService(Context.JOB_SCHEDULER_SERVICE);
tm.schedule(jobInfo);
TestService
除了扩展 JobService
.
您需要将权限 android.permission.BIND_JOB_SERVICE
添加到您的 AndroidManifest.xml
...
<service android:name=".TestService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="true"/>
...
</application>
我的问题是我的服务被定义为静态内部 class。一旦我将服务 class 移动到它自己的 Java 文件
中,问题就自行解决了尝试清理项目。这是我的情况。