你可以:
- 将负责执行 AsyncTask 的类注册为 AsyncTask 中的侦听器。
- 当任务在 doInBackground 方法结束时完成时,在 AsyncTask 中实现回调。
- 收到回调后执行下一个 AsyncTask。
示例:您的侦听器界面:
public interface IProgress {
public void onProgressUpdate(final boolean isFinished);
}
您的活动实现了 IProgress:
public class MyActivity implements IProgress {
public void onProgressUpdate(final boolean isFinished) {
if (isFinished) {
// delayed execution
myHandler.postDelayed(new MyRunnable(MyActivity.this), 30000);
}
}
您的 AsyncTask 包含一个 IProgress 实例,并且您在 doInBackground 末尾或 onPostExecute 中调用 onProgressUpdate:
...
private final IProgress progressListener;
public MyAsyncTask( final IProgress progressListener) {
super();
this.progressListener = progressListener;
}
...
@Override
protected void onPostExecute(final int result) {
progressListener.onProgressUpdate(true);
super.onPostExecute(result);
}
为 postDelayed 创建一个 runnnable:
protected class MyRunnable implements Runnable {
private final IProgress progressListener;
public MyRunnable(final IProgress progressListener) {
super();
this.progressListener= progressListener;
}
public void run() {
new MyAsyncTask(progressListener).execute();
}
};