3

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

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

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());

}

4

1 回答 1

9

你的代码看起来不错。你的JobServicewill 被调用onStartJob(),被传入 a JobParameters。调用getExtras()JobParameters读取PersistableBundle值:

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

    // do good stuff
  }
于 2015-03-30T11:14:54.123 回答