IntentService:如何在工作队列中添加和删除意图?

时间:2015-09-01 09:28:54

标签: android queue intentservice

在Android中,他们认为在后台上传pdf列表时,IntentService就像是一种方式。

如何实际访问工作队列以从工作队列中删除特定项?如果由于某种原因上传该项失败,我还想将一个项重新添加到队列中。

有什么想法吗?

1 个答案:

答案 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创建一个新的意图并重新启动它。您可以在意图中包含类似“尝试号码”的内容,以便在尝试过多次时可以执行其他操作。