我開始這樣的工作: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."); }在服務(wù)中:@Overridepublic boolean onStartJob(JobParameters jobParameters) { Log.d("Service", "v1.2 Started");我得到輸出“服務(wù)正在運行”但不是“服務(wù)已啟動”。并且應(yīng)用程序也沒有接收到服務(wù)應(yīng)該發(fā)送的廣播。這一切在 Android 8 中都可以完美運行,但在 7 中則不然。編輯:我猜該服務(wù)必須正在運行,因為當我關(guān)閉并重新啟動應(yīng)用程序時,我收到消息“服務(wù)已安排好”。那么,為什么我看不到我的服務(wù)的任何日志輸出呢?在牛軋?zhí)侵?,它是否像在奧利奧中一樣直接運行?或者我必須等待一個小時才能開始?
添加回答
舉報
0/150
提交
取消