我开始这样的工作:JobScheduler scheduler = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE); if(scheduler.getPendingJob(JOB_NUMBER) == null) { ComponentName componentName = new ComponentName(this, mService.class); JobInfo info = new JobInfo.Builder(JOB_NUMBER, componentName) .setRequiresCharging(false) .setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED) .setPersisted(true) .setPeriodic(60 * 60 * 1000) .build(); int resultCode = scheduler.schedule(info); if (resultCode == JobScheduler.RESULT_SUCCESS) { Log.d(TAG, "Service is not running, Job " + String.valueOf(JOB_NUMBER) + " Scheduled."); } else { Log.d(TAG, "Service is not running, However job scheduling failed."); } } else{ Log.d(TAG, "Service is already scheduled."); }在服务中:@Overridepublic boolean onStartJob(JobParameters jobParameters) { Log.d("Service", "v1.2 Started");我得到输出“服务正在运行”但不是“服务已启动”。并且应用程序也没有接收到服务应该发送的广播。这一切在 Android 8 中都可以完美运行,但在 7 中则不然。编辑:我猜该服务必须正在运行,因为当我关闭并重新启动应用程序时,我收到消息“服务已安排好”。那么,为什么我看不到我的服务的任何日志输出呢?在牛轧糖中,它是否像在奥利奥中一样直接运行?或者我必须等待一个小时才能开始?
添加回答
举报
0/150
提交
取消