Activity
の後にメソッドを呼び出したいとonPostExecute
思いAsyncTask
ます。どうすればそれができるか知っていますか?
sendSMS(String phoneNumber, String message)
のメソッドを呼び出したいonPostExecute
。
Activity
の後にメソッドを呼び出したいとonPostExecute
思いAsyncTask
ます。どうすればそれができるか知っていますか?
sendSMS(String phoneNumber, String message)
のメソッドを呼び出したいonPostExecute
。
1つの方法は、次のようなActivity
throughコンストラクターのインスタンスを渡すことです。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
を呼び出すことができるはずです。それ以外の場合は、をのコンストラクターに送信し、それを使用してメソッドを呼び出すことができますActivity
onPostExecute()
Context
AsyncTask