2011-09-25 8 views
1

ネットワークからデータを取得しているときにProgressDialogを実行するにはAsyncTaskが必要です。 私はAsyncTaskについて理解しています。しかし、私は12以上の場所でネットワークコールを持っています。ネットワークへの呼び出しが異なるアクティビティからのものであるため、これらのすべての呼び出しに対して1つのAsynchTaskクラスを再利用するにはどうすればよいですか?AsyncTaskを使用してProgressDialogを更新する

これにより、アクティビティ内にネットワークコールがある場合はいつでも、AsyncTaskを書き直すことができました。

+0

複数のファイルを1つの非同期でダウンロードするか、複数の非同期で1つ以上のファイルをダウンロードしたいですか? –

+0

はい単一のashyncTask私はすべてのネットワークコールで再利用したいです。 そして、このクラスは今後のすべてのネットワークコールに対してProgressDialogを処理する必要があります。 クイック返信ありがとう – jibysthomas

答えて

0

あなたのコードの詳細を知らないと、意図していない方法でAsyncTaskを使用しているかのように聞こえます。 docs:

から

このクラスは、バックグラウンド処理を実行し、スレッドおよび/またはハンドラを操作することなく、UIスレッド上の結果を公開することを可能にします。 単一ファイルのダウンロード/ストリームなど、おそらくスレッドのすべての機能を利用し、より複雑な非同期タスクの必要性があるいったんが呼ばれるように私の心のAsyncTaskで

は比較的シンプル非同期タスクに適していますために。それはすべての仕事に利用可能なツールの選択を設計し、修正するために来る...

+0

単一のashyncTask私はすべてのネットワークコールで再利用したいです。私のアプリケーションのさまざまなアクティビティから、このasyncTaskを呼び出してdata.Itを取得し、URLとしてパラメータを取得し、HTTP GETを実行して結果を返します。 このクラスは、URLからの応答が得られるまで、今後のすべてのネットワーク呼び出しに対してProgressDialogを処理する必要があります。 クイック返信ありがとう – jibysthomas

0

それは本当にどのようにあなたのネットワークコールが関与するかによって異なります。それらが素早く、多くのデータを取得していない場合は、AsyncTaskは問題ありません。

最終的に、コードをクリーンアップして、ロジックを繰り返さないようにする必要があります。すべての繰り返しロジックを単一のメソッドに入れていることを確認してください。

アクティビティごとにAsyncTaskを書き換えないように、AsyncTask(およびその他の繰り返しロジック)を定義する「親」アクティビティクラスを作成します。次に、AsyncTaskを実行する必要があるアクティビティにこのアクティビティを拡張させます。

ただし、ネットワークの呼び出しが多少関わっている場合は、別の方法を検討する必要があります。サービスを定義し、すべてのアクティビティをそのサービスにバインドすることができます。

+0

私はあなたのロジックをコード化することができます私はスーパークラスを意味する上に定義されているアクティビティu – jibysthomas

+0

ちょっとplzは、この方法は、 – jibysthomas