Job Scheduler找不到工作/服务?

时间:2017-02-19 23:03:10

标签: android job-scheduling

我的应用程序需要定期执行某些操作,因此我正在尝试在Android API 21中引入的Job Scheduler。此时此刻我正在了解它并尝试基础知识。不幸的是我收到了一个错误:

  

Java.lang.illegalArgumentException:没有这样的服务ComponentInfo {这里到服务类名称TestJobService的整个路径}

我知道有些人已经通过向Manifest添加权限解决了这个问题,但不是我。还有什么可以导致这个?

这是我的代码部分,我猜它出错了:

Toast.makeText(getApplicationContext(), "Exec reaches here...",Toast.LENGTH_SHORT).show();
JobInfo.Builder builder = new JobInfo.Builder(1, new ComponentName(getPackageName(),TestJobService.class.getName()));
    //runs job service after every 10 seconds
    builder.setPeriodic(10000);
    jobScheduler.schedule(builder.build());

我在我的清单中有这个:

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

让我感到困惑的一件事是,我无法在设备设置中手动为应用程序手动授予作业权限(我这样做是为了获得存储权限)。如果应用程序需要调度作业的权限,我不应该在设置中授予权限吗?

我真的希望有人为此提供解决方案。

感谢。

2 个答案:

答案 0 :(得分:1)

确保将您的服务元素放在application元素中,而不是其他地方。我做的时候工作得很好。

答案 1 :(得分:0)

向清单中的用户权限添加<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />。它为我做到了。