BroadcastReceiver
조치 이벤트가 수신되어 순차적으로 실행해야하는 사용 사례가 있습니다.Android : 자바의 스레드에서 작업 순차적으로
여기서 아래와 같이 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 다른 좋은 방법을 선택 찾고 있습니다입니까?
'스레드'에 넣지 않으시겠습니까? –
Action1의 Action2 참조를 Action1 schedule2의 마지막 명령으로 저장하십시오. 그러면 모든 것이 순차적으로 실행되며 얼마나 많은 스레드가 있는지 신경 쓸 필요가 없습니다. – Robert
가장 쉬운 방법은 공통 스레드로 메시지를 보내고 해당 공통 스레드에서 핸들러를 실행하여 직렬화하는 것입니다. 그것은 다른 하나가 끝나기 전에 완료되도록합니다. 또 다른 방법은 세마포어를 사용하여 두 핸들러의 중요 섹션에 대한 액세스를 직렬화하는 것입니다. 어느 쪽이든, 당신은 행동 1이 일어나기 전에 일어나는 행동 2의 가능성을 인식하고 그 사건을 다루어야합니다. –