我正在使用android优先级作业队列库(https://github.com/yigit/android-priority-jobqueue)处理许多进行网络调用的作业。我正在以指数补偿重试作业。根据文档,重试该作业后,将定义一个最大编号。有时,它会被取消并从队列中删除。如果我们希望作业继续重试,则需要创建该作业的新实例,并将其重新添加到队列中,如本SO answer中所述。
我的问题是,我有几种类型的作业都扩展了基Job
类,每种都有其自己的属性集。当我需要在取消作业后创建一个新的实例时,我将需要知道被取消的作业的类型以及每个属性的值。有没有办法访问保留在磁盘上的作业的属性?在将作业重新添加到队列中时,如何获取/保存这些值以实例化作业?
@Override
protected void onCancel(int cancelReason, @Nullable Throwable throwable) {
switch (cancelReason) {
case REACHED_RETRY_LIMIT:
/* get type of job cancelled, create a new instance and add it
back to the queue */
break;
}
}