-2

私はvogellaWebサイトAsyncTaskの例を使用し、それを使用してクラスファイルを作成しました。郵便番号を更新するためにから呼び出しています、動作しています。Activity ATextView

別の郵便番号を更新するために、どのように同じAsyncTaskものを呼び出すことができるのでしょうか。Activity BTextView

したがって、1つAsyncTask、2つは異なるものから呼び出して、異なるものActivitiesを更新しますTextViews

私は何かをしなければなりませんonPostExecute()よね?いくつかのサンプルコードは大歓迎です。

前もって感謝します

4

2 に答える 2

3

インスタンス化するときに、TextView を AsyncTask に渡すことができます (推測します)。

IDEを開いていないため、構文がオフになっている場合は申し訳ありません...

public class ExampleTask extends AsyncTask<Void, Void, Void> {
    private TextView targetTextView;

    public ExampleTask(TextView target) {
     targetTextView = target;
    }

    @Override
    protected String doInBackground(Void... orSomething) {
      //do work and get a value I guess
    }

    @Override
    protected void onPostExecute(String result) {
      targetTextView.setText(result);
    }
  }

次に、これを呼び出します:

ExampleTask task = new ExampleTask(theTextViewToUpdate);
task.execute();

TextView への参照によってアクティビティからメモリ リークが発生する可能性があるため、インスタンス化するタスク オブジェクトのスコープに注意する必要があります。

于 2012-12-04T19:34:02.203 に答える
0

ここで私は苦手ですが、試してみてください

さまざまなアクティビティで AsyncTask を再利用できます。このためには、異なるアクティビティから異なるパラメーターを取得する必要があります。AsyncTask クラスで、(他のアクティビティで説明されている) ケース パラメーターを使用してコンストラクターを開始し、アクティビティ A、B、または C によって呼び出されるかどうかを決定します。次に、switch case ステートメントを使用して先に進みます。

于 2012-12-04T19:33:12.063 に答える