次の状況を実装するための提案が必要です。
で実行する必要のない2つの長時間実行操作(SQLite DBとネットワーク操作)間のダイアログを表示しUI Thread
ます。
どのダイアログが表示されるかは、最初のロングラン操作の結果によって異なりますが、2番目のロングラン操作が実行されるかは、ダイアログでユーザーが選択したオプションによって異なります。私はこれを作るために2つAsynTask
(以下のように)を使用しましたが、プログラムの流れは非常に厄介です。
これをより簡単にするための提案はありますか?
- UIスレッドはAsynTaskAT1を呼び出します
- AT1 doInBackGround()は長時間実行操作を実行します1
- AT2onPostExecuteはダイアログを表示します
- UIスレッドは(コールバックメソッドを使用して)ダイアログの結果を処理し、AsynTaskAT2を呼び出します
- AT2 doInBackGround()は長時間実行操作2を実行します
- AT2onPostExecuteはUIを変更します。