Androidアプリケーションには2つのアクティビティがあります。遅れのないバックグラウンドスレッドでビューのデータをロードするときのベストプラクティス
アクティビティAはアイテムのリストを示します。 アクティビティBには、特定のアイテムに関する詳細が表示されます。
詳細は大規模SQLiteデータベースから読み込まれます。データを生成するために使用されるクエリは、合理的な電話機で約250〜500ミリ秒かかります。
私の質問は、素晴らしいユーザーエクスペリエンスを提供しながらデータを読み込むためのベストプラクティスです。
現在、アクティビティBは作成時にAsyncTaskを実行します。タスクが完了すると、多数のビューが作成されて画面に追加されます。 UIスレッドにはデータはロードされません。
ユーザーには、アクティビティBが素敵な標準ズームアニメーションで開き、1秒後にデータが表示されます。それは、少しばかげたIMOに見えます。
もう1つの方法は、データをUIスレッドにロードすることです。これを適切なタイミングで行うと、250ミリ秒間選択されたリスト項目で画面がフリーズし、データがロードされ、標準のズームアニメーションでビューが変更されますが、すでに入力されているビューにズームしています。それはもっとよく見えますが、理想的ではないUIスレッドをブロックしています。
新しいビューがまだ準備されていないときに素敵なトランジションを達成する最良の方法は何ですか?
データの読み込み中にアクティビティAの上に進捗ダイアログを表示し、キャンセル可能性を追加します。さらに重要なのは、別のスレッドでロードすることです。これがネットワーク操作であるため、応答を受信することに決して頼るべきではなく、操作を簡単にキャンセルする可能性があります。 IMHOはそうです。 – harism
これはネットワーク操作ではありません。 –