如何实际访问工作队列以从工作队列中删除特定项?如果由于某种原因上传该项失败,我还想将一个项重新添加到队列中。
有什么想法吗?
答案 0 :(得分:0)
您无法从队列中删除某些内容,但您可以使用以下内容将内容标记为可跳过:
private static Collection<Object> cancelledThingIds;
public static void cancelThing(Object thingId){
cancelledThingIds.add(thingId);
}
@Override
protected void onHandleIntent(Intent intent) {
if (intent != null) {
final Object thing = intent.getExtra(EXTRA_THING);
if(cancelledThingIds.contains(thing.getId()))
cancelledThingIds.remove(thing);
else{
processThing(thing);
}
}
}
重试项目要简单得多 - 只需为您的intentservice创建一个新的意图并重新启动它。您可以在意图中包含类似“尝试号码”的内容,以便在尝试过多次时可以执行其他操作。