我有一个AsyncTask,它调用第三方API并传递少量参数并获得JSON作为结果。但是,有时执行需要太多时间。假设,我想执行此AsyncTask仅30秒,如果它在30秒内没有完成,则中止AsyncTask并继续执行剩余的代码。你能给出一些参考/例子吗?
答案 0 :(得分:2)
如果CountDownTimer
运行超过30秒,您可以设置AsyncTask
。
例如:
new CountDownTimer(30000, 28000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
asyncTask.cancel(true); //
}
}.start();
另一种方式是处理程序。
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
asyncTask.cancel(true);
}
},30000)
另一种简单的方法是将HTTP调用的连接超时设置为30秒。它将在30秒后自动结束异步任务。