我的应用程序需要周期性地做一些事情,所以我正在尝试在Android 21中引入的作业调度器。就在这个时候,我只是开始了解它,并尝试基本知识。不幸的是,我遇到了一个错误:
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>让我困惑的是,我不能在设备设置中手动授予应用程序作业权限(我这样做是为了获得存储权限)。如果应用程序需要计划作业的许可,难道我不需要在设置中给予许可吗?
我真希望有人能找到解决办法。
谢谢。
发布于 2017-02-26 22:21:41
确保将服务元素放在应用程序元素中,而不是其他地方。我做的时候效果很好。
发布于 2018-09-18 08:31:04
将<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />添加到清单中的用户权限中。这是为了我。
https://stackoverflow.com/questions/42333983
复制相似问题