为了账号安全,请及时绑定邮箱和手机立即绑定

Firebase 作业调度程序无法在 Oreo 设备上工作

Firebase 作业调度程序无法在 Oreo 设备上工作

动漫人物 2022-06-04 09:44:52
我正在使用 firebase 作业调度程序 api 在后台运行服务。在 Marshmallow 中它运行良好,但在使用 Oreo 设备时它无法运行。它显示错误或警告消息,例如2019-02-04 14:20:22.285 2525-5699/? E/NetworkScheduler: Dropping task as app's play services SDK 版本不支持 Android O。请更新 SDK 或降低应用的目标 SDK 版本。包:com.webappclouds.jobserviceexample我已经完成了 git hub 中的 firebase job dispatcher api step 中提到的内容。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条经验 获得超6个赞

错误消息字面上有解决方案

更新 SDK 或降低应用的目标 SDK 版本。包:com.webappclouds.jobserviceexample

更新您的图书馆0.5.2

implementation 'com.firebase:firebase-jobdispatcher:0.8.5'

我还注意到您的清单上有一个空的权限值,请将其删除。

android:permission=""

让我知道这是否有帮助💪


我建议您迁移到,WorkManager因为它是一个更向后兼容且更简单的 API。使用此库时,您的所有API 级别限制都会得到处理(限制与安全性不同)。

您可以在此处找到一个简单的工作流程示例:

和文档:

我建议您阅读两者。


查看完整回答
反对 回复 2022-06-04
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

请在此处查看有关 Firebase JobDispatcher 的官方 Android 文档:

WorkManager 是一个用于在 Android 中调度和执行可延迟后台工作的库。它是 Firebase JobDispatcher 的推荐替代品。以下指南将引导您完成将 Firebase JobDispatcher 实施迁移到 WorkManager 的过程。


查看完整回答
反对 回复 2022-06-04
  • 2 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信