Activityの後にメソッドを呼び出したいとonPostExecute思いAsyncTaskます。どうすればそれができるか知っていますか?
sendSMS(String phoneNumber, String message)のメソッドを呼び出したいonPostExecute。
Activityの後にメソッドを呼び出したいとonPostExecute思いAsyncTaskます。どうすればそれができるか知っていますか?
sendSMS(String phoneNumber, String message)のメソッドを呼び出したいonPostExecute。
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(...);
次のように、コンストラクターとグローバル変数をAsyncTaskに追加します。
AsyncBigCalculActivity mActivity;
public PostTask(AsyncBigCalculActivity a) {
mActivity = a;
}
次に、mActivity.sendSMS("test", "test")必要なときに使用します。
sendSMS()ただし、実際にはユーティリティクラスのようなメソッドが必要です。
あなたAsyncTaskがあなたの内部クラスである場合、あなたはあなたからメソッドActivityを呼び出すことができるはずです。それ以外の場合は、をのコンストラクターに送信し、それを使用してメソッドを呼び出すことができますActivityonPostExecute()ContextAsyncTask