サーバーと頻繁にやり取りする必要があるアプリを開発しています。
そのため、ユーザーは名前とパスワードを入力し、承認後に次のタスクを実行する必要があります。
- アプリは、このユーザーのすべての受信メッセージと送信メッセージをフェッチし、それらを SQLite データベースにロードする必要があります。
- すべてのユーザー フレンド (ID、名前、contact_data を含む JSON) を取得し、それをアプリのデータベースにロードします
- 次のアクティビティにジャンプし、ローカル データベースからの収入メッセージを表示します。
この操作の問題は遅すぎて、アプリが新しいアクティビティを開始したときにデータベースから取得するものは何もありません:AsyncTasks はまだ完了していません。すべての完了を待つために AsyncTask.get() を使用する必要がありますが、これには待つこと16秒以上!
スレッドを使用するか、フェッチしたデータをデータベースにロードする前にメモリに保持し、データベースからフェッチする代わりに新しいアクティビティに表示しますか?しかし、データベース タスクがなくても、他のフェッチ タスクは待機するのに 10 秒近くかかります!それで、私は何をすべきですか?