有使用情況,其中BroadcastReceiver
動作事件接收並需要按順序執行它們。Android:在JAVA中的線程上的任務順序
這裏如下所示,Event1和Event2可以背對背接收。 Event1的工作必須完成,然後Event2的工作應該開始。
如何使它順序?
BroadcastReceiver{
onReceive(){
Event1:
Task1 doing Something different.//Cant run network operations here.
Event2:
Task2 doing Something different.//Cant run network operations here.
}
}
executors.newsinglethreadexecutor()
或handlerthread
是被選擇我期待這樣的at..any其他的好辦法?
爲什麼不把它放到一個'Thread'中? –
在Action1中保存Action2的引用,並作爲Action1中的最後一個命令調度Action2。然後,一切都按順序進行,您不必關心有多少線程在那裏。 – Robert
最簡單的方法是通過向公共線程發送消息並在該公共線程上運行處理程序來序列化它們。這確保一個在另一個之前完成。另一種方法是使用信號量序列化訪問兩個處理程序的關鍵部分。無論哪種方式,您都需要意識到在行動1之前發生行動2並處理該案件的可能性。 –