5

私が探しているのは、Asyntask内のいくつかのスレッドを管理する方法を見つけることです。同期タスク内のスレッド数を管理する方法

ローカルデータベースをサーバーの更新プログラムと同期する必要があります。これは、ページングを使用して取得できる大量のデータである可能性があります。

スレッドがすべて完了するまでProgress Dialogを表示できるように、スレッドを生成してスレッド内でスレッドを管理する方法を教えてもらえますか?

&ローカルデータベースオブジェクト&は、サーバ&からローカルデータベースにデータをダウンロードするために、異なるスレッドの実行中にその同期が少し心配です。

注:サーバーからすべてのデータを1回のサーバーコールでダウンロードすることはできません。

ありがとうございます。

答えて

2

長時間実行する操作の場合は、AsyncTaskではなくIntentServiceを使用する必要があります。 IntentServiceはUIに依存しないため、バックグラウンドで実行できます。 UIを更新するには、ブロードキャストのインテントを送信します。 DB同期にIntentServiceを使用します。サーバーからデータを取得しますが、解析中はバッチ更新を作成し、ローカルDBを1回のバッチ更新で更新します。

+0

しかし、どのようにして繰り返しサーバーコールの時間を短縮できますか。一度に複数の通話を実行するにはどうすればいいですか? –

0
Try this ,  

You can set a static variable that is initialized to zero, and it is incremented 
by each thread .check this variable in asynctask,if it is equal to the no: of threads 
in your class finish it.Simple But works 
関連する問題