実行時に呼び出すAsyncTaskのイベントリスナーを登録しonPostExecute
ます。
public class Example extends AsyncTask<Void, Void, Void> {
public interface ExampleListener {
public void onStart();
public void onProgress();
public void onFinish();
}
private ExampleListener listener;
public Example(ExampleListener listener) {
mListener = listener;
}
@Override
public void onPreExecute() {
...
mListener.onStart();
...
}
@Override
public void onProgressUpdate(Void... v) {
...
mListener.onProgress();
...
}
@Override
public void onPostExecute(Void result) {
...
mListener.onFinish();
...
}
}
必要なデザインに合うようにパターンをカスタマイズします。リスナーが各イベントに必要なインターフェイスメソッドにパラメータを含めます。を実装するクラスがある場合は、Example.ExampleListener
を呼び出すことによってこれを開始するだけで済みますnew Example(this).execute()
。