如果我正确理解了IntentService上的API文档,那么发送到IntentService队列的意图如果正在处理并按顺序处理就会排队。
是否有一种简单的方法可以告诉IntentService它应该只删除在处理时发送给它的任何意图?
干杯, 托
答案 0 :(得分:1)
有一种简单的方法......?
不,不是我所知道的简单方法,但也许并不太难。
我想我已经看到了类似的问题,其中一个建议就是通过复制Android源代码来简单地定义自己的IntentService类(代码少于150行,其中一些是注释)。 / p>
Intents的'队列'由一个名为ServiceHandler的嵌套类管理,该类扩展了Handler。如果您从源定义自己的'IntentService',您可以添加方法来清除消息队列,如果它正处理Intent(如果这就是您需要的话),甚至可以终止Handler。
答案 1 :(得分:0)
onStart()
,如果您不想处理意图,则返回,否则请致电super.onStart()
。
public void onStart(Intent intent, int startId) {
if (processing()) {
return;
}
super.onStart(intent, startId);
}
但请注意,IntentService
的javadoc明确指出onStart()不应该被覆盖。