-2

AsyncTasks に関する質問があります。

私のプロジェクトでは、CustomTask1 や CustomTask2 などの複数の AsyncTask クラスがあり、それらの中でいくつかの HTTPPOSTS や解析を行っています。AsyncTasks のパラメーターとして、(http://IP/「Web インターフェイス用の特別なコマンド」) のような最終的な静的文字列をいくつか取得しました。

実際には、4 ~ 5 個の AsyncTask クラスは必要ありません。多くのものが実際には同じであるため、同じコードを複数回記述しました。単一の AsyncTask をコーディングし、そこにいくつかのメソッドを配置して、どのメソッドを使用するかを決定する静的な値を定義するほうがよいのではないでしょうか? 問題は、AsyncTask からの異なる戻り値、場合によっては String、場合によっては ArrayList も必要であることです。

全体が少しきれいになる

ありがとうございました

4

2 に答える 2

1

あなたが書く:

4〜5個のAsyncTaskクラスは必要ありません。実際には同じものがたくさんあるので、同じコードを複数回記述しました...

それが問題です。同じコードを複数回記述しないでください。ただし、複数のAsyncTaskを使用してください。AsyncTasksは、 TASK-SPECIFICロジックのみを含むすべての特定のタスクタイプのコードのファサードとして使用する必要があります。もちろん、これらのタスクが同じ「アルゴリズムピース」を共有している場合は、これらのアルゴリズムパーツを一箇所に記述し、型指定されたタスクを通じて異なる方法で公開します。私は次のようなことをします:

class TaskLogicImpl //contains various task general static methods like parsing string etc...
{
   static void preParseServerResponse().......
} 

次に、タスクを作成します。

class Task1 : AsyncTask<URL, Integer, List>
{
  call your. TaskLogicImpl....
} 

すべてのタスクが入力されるため、タイプセーフな方法でさまざまな値を返すことができます

于 2012-12-28T15:44:20.923 に答える
0

アプリケーションで繰り返されるいくつかのメソッドがある場合は、Application クラスを拡張するクラスを作成することを検討してください。詳しくはこちら

于 2012-12-28T15:34:43.290 に答える