我创建了一个CountDownTimer
这样的
public class MyCountDownTimer extends CountDownTimer {
public MyCountDownTimer(long startTime, long interval) {
super(startTime, interval);
}
@Override
public void onFinish() {
//timeout
}
@Override
public void onTick(long millisUntilFinished) {
PaymentAsyncTask paymentTask = new PaymentAsyncTask(this);
paymentTask.execute();
}
}
在onPostExecute
中paymentTask
,我正在某些特定条件下进行一些操作。
基本上,我正在从某个网站检查,经过一段时间(比如 3 秒)后,任务是否已完成。
现在,如果互联网运行得很快,这段代码就没有问题,
如果任务完成,我取消 onPostExecute 中的计时器并做进一步的工作。
但是如果互联网运行缓慢,这意味着响应没有在 3 秒内出现,
onPostExecute
被多次调用(在其中多次执行代码),而任务已经完成,只是由于服务器我得到了迟到的响应问题/互联网延迟。
我如何确保里面的代码onPostExecute
只被调用一次?
可能的方法:
- 取一些静态标志变量,使其为真并检查其他变量......
我正在寻找一些可靠的解决方案,也许android提供了一些机制来同步这个..谢谢