Android java.lang.IllegalArgumentException:没有这样的服务ComponentInfo JobScheduler

时间:2015-10-27 09:27:02

标签: android android-jobscheduler

我试图创建一个简单的JobScheduler作业,看它是如何工作的。 但是我一直在Runtime上得到这个例外,当我逐步按照指南时,我无法弄明白。

这是我的电话:

        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。

3 个答案:

答案 0 :(得分:40)

您需要将权限android.permission.BIND_JOB_SERVICE添加到AndroidManifest.xml

...
<service android:name=".TestService"
     android:permission="android.permission.BIND_JOB_SERVICE"
     android:exported="true"/>
...
</application>

答案 1 :(得分:2)

尝试清理项目。这是我的理由。

答案 2 :(得分:0)

我的问题是我的服务被定义为静态内部类。一旦我将服务类移动到它自己的Java文件

中,问题就解决了