2016-05-29 8 views
0

メッセージングアプリケーションを開発しています。ユーザーがメッセージを送信するたびに、メッセージはローカルデータベースに保存され、POSTのAsynkTaskを介してサーバーに送信される前に、データベースに「送信されません」というステータスのメッセージがあるかどうかが検証されます。この状態のメッセージがある場合、私は最後のメッセージを残し、それぞれのメッセージに対してasynkタスクを作成するメッセージを送るループを作成します。サーバーからの応答がOKの場合、メッセージのステータスはデータベース内の「送信済み」に変更されます。ステータスが「not_sent」のメッセージがない場合、現在のメッセージはasynkタスクを介してサーバに送信されます。 問題は、ユーザーがメッセージを送信するたびにこの検証が行われ、最初のAsynkTaskが他のAsynkTaskをディスパッチしたかどうかを確認する前に新しいasynkタスクが作成されることです。 サービスを作成し、それにディスパッチするすべてのメッセージを送信する必要がありますか?または、私はSerialExecutorオプションでAsynkTaskを呼び出す必要がありますか?IntentServiceのAsynkTaskをメッセージングアプリケーションに使用する

答えて

0

メッセージがサーバーに送信されているときに「送信」の別の状態(この方法二AsyncTaskは最初AsyncTaskが現在送信されたメッセージを持つノー対処させていただきます)API11 AsyncTaskの使用実行部から

+0

サービスを作成することをお勧めしませんが、SerialExecutorオプションはどうですか? – jckhan

0

を追加する必要がありますアプリケーションごとに、タスクが順番に実行されます。 DB同期に問題がある可能性があります。

アーキテクチャサービスは、チャットアプリケーションに適しています。

関連する問題