0

context.startService() 调用是否保证被服务按照它们发送的顺序获取?

在活动中考虑:

Intent intent;

intent = new Intent(MyIntents.ADD_BATCH_ACTION);
intent.putExtra(MyIntents.BATCH_ACTION_NAME, "Bake donuts");
startService(intent);

intent = new Intent(MyIntents.ADD_BATCH_ACTION);
intent.putExtra(MyIntents.BATCH_ACTION_NAME, "Make a coffee");
startService(intent);

intent = new Intent(MyIntents.ADD_BATCH_ACTION);
intent.putExtra(MyIntents.BATCH_ACTION_NAME, "Fetch coffee and donut to room 12");
startService(intent);

startService(new Intent(MyIntents.FLUSH_ADDED_ACTIONS));

有些动作可能有很多共同的工作,如果我确定它们是成批执行的,我可以优化服务。

我可以假设 service onStartCommand 将以相同的顺序执行吗?

问候,托梅克

4

1 回答 1

1

context.startService() 调用是否保证被服务按照它们发送的顺序获取?

虽然我认为它们碰巧是按顺序发生的,但 AFAIK 这不是记录在案的行为,因此我不会指望它。

有些动作可能有很多共同的工作,如果我确定它们是成批执行的,我可以优化服务。

然后只调用startService()一次,所有内容都在您的“批处理”中。Intent extras 支持多种类型的数组,因此请尝试打包一个 extras 数组,而不仅仅是一个。

于 2012-04-05T14:51:17.927 回答