PersistableBundle 将值传递给服务和检索

PersistableBundle pass values to service and retrieve

我正在使用 JobScheduler 并且能够 运行 调度程序。

现在我想使用 PersistableBundle 将一些值从我的 Activity 传递到我的服务 class。有人可以指导如何传递值并检索它吗?这是我试图传递值的函数。

private void constructJob(){
JobInfo.Builder builder = new JobInfo.Builder(JOB_ID, new ComponentName(this, MyService.class));
PersistableBundle bundle = new PersistableBundle();
bundle.putInt("height",height);
bundle.putInt("width",width);
builder.setPeriodic(20000)
        .setExtras(bundle)
        .setPersisted(true);

mJobScheduler.schedule(builder.build());

}

您的代码看起来不错。您的 JobService 将通过 onStartJob() 调用,并在 JobParameters 中传递。在 JobParameters 上调用 getExtras()PersistableBundle 读入值:

  @Override
  public boolean onStartJob(JobParameters params) {
    PersistableBundle pb=params.getExtras();

    // do good stuff
  }