2

私は完全にWebサービスからのデータのフェッチに基づくアプリケーションを開発しています。1つのアクティビティで、さまざまな情報を表示するほぼ56の異なるWebサービスを呼び出す必要があります。このアプリケーションはターゲットv2.3から4.xを対象としています。これは、メインUIスレッドでネットワーク通信が許可されていないため、5 6 AsyncTaskクラスを作成しています。これは、実行後の表示に非常に役立つためです。

今、私はこのアプローチが正しいか間違っているか混乱しており、5 6 AsyncTaskクラスを作成しています(データを何度もチェックする必要があるため、Webサービスの数を減らしたり1つのAsyncTaskを呼び出すことはできません)。これは良いアプローチですか、それともパターンを変更してから、どのアプローチに切り替える必要がありますか。このアプローチを使用すると、私のアプリケーションはすべてのデバイスで非常にうまくスムーズに動作します。

4

2 に答える 2

0

各ASyncTaskクラスはWebサービスへのAPIリクエストであると思いますが、そうであれば、それが正しい方法です。ネットワーク操作はすべて、UIスレッドの外部で実行する必要があります。

ThreadPoolsを使用して、一度にアクティブにしておくサーバー要求の数を制限するためのより良い方法もあります。

于 2012-07-20T06:39:35.220 に答える
0

それは良いパターンだと思います。オブジェクト指向設計にうまく適合し、それぞれが独自のタスクを実行します。

Web呼び出しがすべて互いに直接続く場合、本当に必要な場合は、それらを1つの巨大なAsyncTaskに組み合わせることができます。それは間違いなくあなたが今持っている素晴らしいカプセル化を減らし、誰かが将来の維持とデバッグを非常に難しくするでしょう。

あなたが持っているものはすでに良いように聞こえます、そしてそれがうまく機能しているなら、なぜ壊れていないものを修正するのですか?

于 2012-07-20T06:39:56.960 に答える