軽量アーキテクチャでチャット アプリケーションを実装しています。
私は Google Cloud Messaging を使用して、サーバーから Android クライアントへの通知を処理しています (新しいメッセージの着信、新しい友情のリクエストなど)。
ユーザー X が会話できる人の ListView があります。パフォーマンスと堅牢性の理由から、ユーザー Y との 1 つの会話を開いたときに「新しいメッセージのルックアップ」を作成するのはコストがかかります。通常、最新のメッセージはすべて SQLite DB に保存され、すぐに利用できます。問題は、着信する新しいメッセージを管理することです...
では、最適なアーキテクチャは何ですか?
新しいメッセージが到着したときにAndroidクライアントに通知をプッシュします->サーバーをすぐに検索して、ユーザーYからすべての新しいメッセージを取得します.
しかし、通知が届かない場合はどうすればよいですか? アクティビティ チャット ライフサイクルの特定の時点でルックアップを行うサービスが必要ですか? たとえば、チャット アクティビティが onPause() になるたびに?
SQLite db にメッセージを効率的に格納し、サーバー db からのルックアップを高速化するためのパフォーマンスのヒントはありますか?