地元のシネマテック用のファンアプリを作成しています。アプリはスクリーニングスケジュールを取得します。これは、名前とスクリーニング時間などの基本データList
を含むオブジェクトとして保存されます。Film
映画ごとに、映画館のサイトの映画ページに対して非同期HTTP呼び出しを行い、説明、年、長さなどの完全なデータを取得します。FilmData
結果は解析され、オブジェクトに変換され、に挿入されBlockingQueue
ます。
HTTP呼び出しがデータとともに返されるたびに、UIスレッドで映画の説明を更新したいと思います。UIスレッドがフリーズするため、take()
またはを使用できません。poll()
私は2つの戦略を考えました:
BlockingQueue
外部スレッドからのポーリング、およびを使用したUIの更新runOnUiThread
。AsyncTask
非ブロッキング方式でキューをポーリングするために使用します。
ネットワーク呼び出しがAndroidアプリで非常に一般的なシナリオを終了したときに、UIを更新します。それを行う正しい方法は何ですか?