服务是否保证以与发送服务相同的顺序获取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));
有些行动可以做很多共同的工作,如果我确定它们是批量执行的,我可以优化服务。
我可以假设服务onStartCommand将以相同的顺序执行吗?
问候,Tomek
答案 0 :(得分:1)
服务是否保证以与发送服务相同的顺序获取context.startService()调用?
虽然我认为它们碰巧按顺序发生,但AFAIK这并不是记录在案的行为,因此我不会指望它。
有些行动可以做很多共同的工作,如果我确定它们是批量执行的,我可以优化服务。
然后只调用startService()
一次,其中包含“批次”中的所有内容。 Intent extras支持多种类型的数组,因此请尝试打包一个额外的数组而不是一个。