1

AsyncTaskデータベースからデータを取得するために を多用するアプリケーションを作成しています。私の問題は、ほぼ 12AsyncTasksの異なるコードがあり、コードがますます汚くなっていることに加えて、いくつかのタスクが異なるアクティビティ間で共有されているという事実です。

私がすでに書いたものの中にはAsyncTask独自のJavaクラスファイルがありますが、一部のリクエストはアプリケーションのリソースにアクセスする必要があるため(使用がResources.getSystem().getString(stringId)不可能になったり、参照としてパラメーターとして変更する必要があるインスタンスを渡す必要があるため)、常に理想的ではありません)

AsyncTaskクラスを書くための推奨される方法はありますか?

4

1 に答える 1

2

正確な状況を知らずに言うのは難しいですが、同様のタスクを実行するものがある場合は、それらを独自のファイルに作成し、必要なパラメーターを取るコンストラクターを作成できます。

ContextActivityオブジェクトなどを受け入れるように設定してから、再利用可能にすることができます。特定の場合にのみ必要なものがある場合は、Activityそれを内部クラスにしますが、複数で使用するActivities場合は別のクラスにし、コンストラクターを使用して必要なパラメーターを取得します。

私のアプリケーションには多くのものAsyncTasksがありますが、それらがどのように必要かによって異なります。先ほど言ったContextように、Context. のように渡すだけです

MyTask task = new MyTask(this);  // for passing Context or any other params the constructor takes
task.execute();

そして課題では

public class MyTask extends AsyncTask<...>  // add AsyncTask params
{
     Context context;
     public MyTask(Context c)
     {
         context = c;
     }
     // methods
}
于 2013-08-15T22:32:56.293 に答える