と の 2 つの異なる実装がありAsyncTask
ます。AT1
AT2
AT1
が最初に実行され、次にAT2
が実行されます。500 ミリ秒ごとにこのデータをポーリングして、タスクが完了するまでAT1
待機します。しかし、これは決して起こりません。doInBackground
AT2
だから私が基本的に欲しいのはこれです:
しかし、何が起こっているように見えるかというと、次
のようにAT1
なりAT2
ます。
AsyncTask
これら 2 つの s を 2 つの別々のスレッドで強制的に実行する方法はありますか、それとも別の解決策がありますか?
最初に起動AT2
してから実行することはできませんAT1
。
編集
明確にするために:AT1
ユーザーが特定の画面を開いたときに実行され、場所に基づいてその画面のデータをダウンロードする必要があります。AT2
場所の変更時に実行され、それが発生すると、UI スレッドでは実行できないいくつかの計算が行われます。
AT2
一度も実行されていない場合AT1
、データをダウンロードする場所がないためAT2
、完了するまで待機する必要があります。が実行されると、位置データAT2
はすでにそこにあるAT1
ため、待機する必要はありません。
また、この回答が示唆するように、この問題は Android 2.3 ではなく ICS で発生します。