我正在使用 firebase 作業(yè)調(diào)度程序 api 在后臺運行服務(wù)。在 Marshmallow 中它運行良好,但在使用 Oreo 設(shè)備時它無法運行。它顯示錯誤或警告消息,例如2019-02-04 14:20:22.285 2525-5699/? E/NetworkScheduler: Dropping task as app's play services SDK 版本不支持 Android O。請更新 SDK 或降低應(yīng)用的目標(biāo) SDK 版本。包:com.webappclouds.jobserviceexample我已經(jīng)完成了 git hub 中的 firebase job dispatcher api step 中提到的內(nèi)容。MainActiviy.javapackage com.webappclouds.jobserviceexample; import android.app.job.JobInfo; import android.app.job.JobScheduler; import android.content.ComponentName; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import com.firebase.jobdispatcher.Constraint; import com.firebase.jobdispatcher.FirebaseJobDispatcher; import com.firebase.jobdispatcher.GooglePlayDriver; import com.firebase.jobdispatcher.Job; import com.firebase.jobdispatcher.Lifetime; import com.firebase.jobdispatcher.RetryStrategy; import com.firebase.jobdispatcher.Trigger; public class MainActivity extends AppCompatActivity {String TAG="MAIN ACTIVITY";FirebaseJobDispatcher dispatcher;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this));}public void startjob(View view) { Log.d(TAG, "startjob: "); Job job = createJob(dispatcher); dispatcher.mustSchedule(job);}public void stopjob(View view) { Log.d(TAG, "cancelJob: "); dispatcher.cancelAll();}public Job createJob(FirebaseJobDispatcher dispatcher) { Log.d(TAG, "createJob: "); Job job = dispatcher.newJobBuilder() // persist the task across boots .setLifetime(Lifetime.FOREVER) // Call this service when the criteria are met. .setService(MakeService.class) // unique id of the task .setTag("LocationJob")}}
2 回答

躍然一笑
TA貢獻1826條經(jīng)驗 獲得超6個贊
錯誤消息字面上有解決方案
更新 SDK 或降低應(yīng)用的目標(biāo) SDK 版本。包:com.webappclouds.jobserviceexample
更新您的圖書館0.5.2
implementation 'com.firebase:firebase-jobdispatcher:0.8.5'
我還注意到您的清單上有一個空的權(quán)限值,請將其刪除。
android:permission=""
讓我知道這是否有幫助??
我建議您遷移到,WorkManager
因為它是一個更向后兼容且更簡單的 API。使用此庫時,您的所有API 級別限制都會得到處理(限制與安全性不同)。
您可以在此處找到一個簡單的工作流程示例:
和文檔:
我建議您閱讀兩者。
Android Oreo 后臺執(zhí)行限制:https ://www.youtube.com/watch?v=Pumf_4yjTMc
添加回答
舉報
0/150
提交
取消