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他の良い方法を探していますオプションされていますか?
「スレッド」に入れてみませんか? –
Action1のAction2の参照を、Action1のSchedule2の最後のコマンドとして保存します。すべてが順番に実行され、そこにいくつのスレッドがあるか気にする必要はありません。 – Robert
これを行う最も簡単な方法は、メッセージを共通のスレッドに送信し、その共通のスレッドでハンドラを実行することによって、シリアル化することです。そうすれば、一方が他方の前に終わることが保証される。別の方法は、セマフォを使用して2つのハンドラのクリティカルセクションへのアクセスをシリアライズすることです。いずれにしても、アクション1の前にアクション2が発生する可能性を認識し、そのケースを処理する必要があります。 –