限制AsyncTask执行时间的简单方法是什么?

时间:2017-08-13 08:16:39

标签: android

我有一个AsyncTask,它调用第三方API并传递少量参数并获得JSON作为结果。但是,有时执行需要太多时间。假设,我想执行此AsyncTask仅30秒,如果它在30秒内没有完成,则中止AsyncTask并继续执行剩余的代码。你能给出一些参考/例子吗?

1 个答案:

答案 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秒后自动结束异步任务。