我有一个IntentService将Web服务调用排队以便执行。每个Intent都会传递一个整数作为Extra,它定义了要进行的Web服务调用类型。
我想创建这样一种情况:如果向IntentService传递执行特定Web服务的Intent,并且该Intentservice队列中已经存在该相同Web服务的Intent,则不处理该Intent。理想情况下,我会丢弃该Intent,但我也可以给它添加一个Extra,让代码知道在处理该Intent后跳过它。随着Intents的到来,我可以在IntentService中添加某些对象来跟踪现有队列。
但是,我没有找到在Intent传递给IntentService时立即拦截该Intent的位置。据我所知,在onHandleIntent被调用时才能操作该Intent,而那时已经太晚了。
有任何想法吗?
我想创建这样一种情况:如果向IntentService传递执行特定Web服务的Intent,并且该Intentservice队列中已经存在该相同Web服务的Intent,则不处理该Intent。理想情况下,我会丢弃该Intent,但我也可以给它添加一个Extra,让代码知道在处理该Intent后跳过它。随着Intents的到来,我可以在IntentService中添加某些对象来跟踪现有队列。
但是,我没有找到在Intent传递给IntentService时立即拦截该Intent的位置。据我所知,在onHandleIntent被调用时才能操作该Intent,而那时已经太晚了。
有任何想法吗?
onStartCommand
调用可能处理队列:如果你重写它并确保实际调用了超类的方法,应该没问题。 - Femi