我有一个异步任务,如果异步花费太长时间,我希望等待,我正在下载数据库的一些数据,但我不想让用户在进度对话框中循环,我想要设置一个固定的时间,假设我正在下载一个文件,但需要很长时间,所以我告诉用户,“嘿,检查你的互联网连接,然后重试”我希望用计时器来做到这一点,但我有点卡住了,这是我执行异步任务的地方
private class DownloadFilesTask extends AsyncTask<Void, Void, Void> {
String s;
public DownloadFilesTask(String s){
this.s = s;
}
@Override
protected Void doInBackground(Void... voids) {
DownloadMethod(s);
return null;
}
}
假设我想在固定的时间(10 或 20 秒)执行该下载方法,如果当时没有下载文件,我会向用户返回一条消息,说他需要检查他的互联网。
最佳答案
您可以使用处理程序在一定时间后运行并维护一个 bool 标志,您可以在异步任务的 postExecute 函数中更新该标志。
在您的 Activity/fragment 类中:
new Handler().postDelayed(new Runnable(){
public void run(){
//Check whether the flag has been updated or not
},1000)
关于android - 如果AsyncTask未完成,如何设置固定时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48118661/