0
context.startService()調用是否保證按照發送的順序由服務獲取?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));
一些動作可以的hve很多共同的工作,我可以優化服務,如果我是確保它們在批處理執行。
我可以假設服務onStartCommand將以相同的順序執行嗎?
問候,託梅克
我同意這個評估。有趣的是,如果你正在主線程中調用這些調用,並且你的服務處於同一個進程中,我總會看到startService()意圖按提供的順序處理。原因是onStart()和onStartCommand()都在主線程上執行,並且在startService()調用甚至可以返回之前必須「完成」。 – 2012-04-05 14:59:01
你一般是對的,但我希望能夠從不同的活動中批量操作,然後從另一個活動刷新。例如一個3步表單接口,或者一個任務隊列一起執行優化 - >它們都共享公共資源,但在邏輯上是獨立的。 – 2012-04-05 15:07:17