1

Activityの後にメソッドを呼び出したいとonPostExecute思いAsyncTaskます。どうすればそれができるか知っていますか?

sendSMS(String phoneNumber, String message)のメソッドを呼び出したいonPostExecute

4

4 に答える 4

4

1つの方法は、次のようなActivitythroughコンストラクターのインスタンスを渡すことです。PostTask

private class PostTask extends AsyncTask<String, Integer, String>
{
    private AsyncBigCalculActivity activity;

    public PostTask(AsyncBigCalculActivity activity)
    {
        this.activity = activity;
    }

    // ...
}

インスタンスの作成時にPostTask、アクティビティインスタンスを渡します。

new PostTask(this).execute();

これで、次のようsendSMS()に、内から呼び出すことができます。PostTask

activty.sendSMS(...);

PostTaskまた、アクティビティ内でプライベートクラスとしてを定義している場合は、次のsendSMS()ように呼び出すことができます。

AsyncBigCalculActivity.this.sendSMS(...);
于 2013-01-19T22:15:20.600 に答える
1

次のように、コンストラクターとグローバル変数をAsyncTaskに追加します。

AsyncBigCalculActivity mActivity;

public PostTask(AsyncBigCalculActivity a) {
    mActivity = a;
}

次に、mActivity.sendSMS("test", "test")必要なときに使用します。

sendSMS()ただし、実際にはユーティリティクラスのようなメソッドが必要です。

于 2013-01-19T22:14:08.777 に答える
1

あなたAsyncTaskがあなたの内部クラスである場合、あなたはあなたからメソッドActivityを呼び出すことができるはずです。それ以外の場合は、をのコンストラクターに送信し、それを使用してメソッドを呼び出すことができますActivityonPostExecute()ContextAsyncTask

于 2013-01-19T22:14:39.060 に答える