当移动设备连接到Android Oreo中的充电器(ACTION_POWER_CONNECTED)时,启动服务时出现问题,方法是在接收者清单中指定它不起作用(Android Oreo的局限性)。 我已经尝试过JobSheduler,但没有成功(连接充电器时服务无法启动),我的代码如下:
public class JService extends JobService {
@Override
public boolean onStartJob(final JobParameters jobParameters) {
//RUN SERVICE
return false;
}
@Override
public boolean onStopJob(final JobParameters jobParameters) {
return false;
}
}
然后从MainActivity调用(onCreate):
ComponentName myService = new ComponentName(this, JService.class);
JobInfo myJob = new JobInfo.Builder(LOAD_ARTWORK_JOB_ID,myService)
.setRequiresCharging(true)
.setPersisted(true)
.build();
JobScheduler jobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
jobScheduler.schedule(myJob);
最清晰的声明:
<service android:name=".services.JService"
android:permission="android.permission.BIND_JOB_SERVICE" />