我有一个 IntentService,它将要进行的 Web 服务调用排队。我将一个整数作为 Extra 传递给每个 Intent,它定义了要进行的 Web 服务调用的类型。
我想创建一种情况,如果执行特定 Web 服务的 Intent 被传递到 IntentService,并且 IntentService 队列中已存在该相同 Web 服务的 Intent,则不会处理该 Intent。理想情况下,我会丢弃 Intent,但我也可以向其中添加一个 Extra,让代码知道在处理 Intent 后跳过该 Intent。当 Intent 进入时,我可以跟踪添加到 IntentService 的某个对象的队列中的哪些 Intent。
但是,当 Intent 传递给 IntentService 时,我没有看到可以拦截 Intent 的地方。据我所知,我只能在 onHandleIntent 被调用时触摸它,而那就太晚了。
有任何想法吗?
严格来说这并不可取,但我建议这样:
public int onStartCommand (Intent intent, int flags, int startId)
{
// do your intent modification here
//if(intentIsDuplicate(intent))
// make sure you call the super class to ensure everything performs as expected
return super.onStartCommand(intent, flags, startId);
}
让我知道这是否有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)