0

任意の量のデータを送り返すWCFRESTサービスを使用するAndroidモバイルアプリケーションがあります。サービスはこのデータをチャンクで送信します。チャンクの終わりには、さらにあることを示すインジケーターがあり、そのインジケーターがサービスに戻されると、次のチャンクが送信されます。

このデータは、アプリケーションのListViewに入れられます。私がやりたいのは、サービスループを呼び出し、ハンドラーを使用してデータが到着したときにリストビューを更新することです。

いくつか質問があります:

AsyncTaskをループする必要がありますか、それともAsyncTask内でループする必要がありますか?

データが入ってくるときにListViewを更新するのが最善でしょうか、それともすべてのデータを取得してから、すべてのデータでListViewを更新するのが最善でしょうか?

これらの質問への回答またはこのプロセスへの洞察をいただければ幸いです。

4

1 に答える 1

0

-AsyncTask は、1 回限りの迅速な操作を目的としています。データベースにいくつかのレコードを挿入し、クエリを送信し、短い HTTP リクエストを発行します (たとえば、サーバーに ping を送信するため)。サーバーから大量のデータをダウンロードするような長いプロセスには向いていません。この特定のケースでは、AsyncTask をスキップして、バックグラウンド ワーカー スレッドを作成するだけです。やるべき仕事があるときはスレッドにウェイクアップ コールを送信し、残りの時間はスレッドをスリープ状態にします。

-リストビューを段階的に更新するか、一度にすべて更新するのが最適かは、アプリケーションの種類によって異なりますが、多くの場合、段階的に更新する方がエクスペリエンスが向上するため、ユーザーはある程度の進歩を感じます。

于 2012-04-09T17:32:32.467 に答える