【发布时间】:2018-06-15 13:32:59
【问题描述】:
我有一个异步任务,如果异步耗时太长,我希望等待,我正在下载数据库的一些数据,但我不想让用户在进度对话框中循环,我想设置一个固定的时间,假设我正在下载一个文件,但要花很长时间,所以我告诉用户,“嘿,检查你的互联网连接,然后再试一次”我想用计时器来做这个,但我我有点卡住了,这是我做异步任务的地方
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 秒,如果当时没有下载文件,我会向用户返回一条消息,说他需要检查他的互联网。
【问题讨论】:
-
也在找这个!
-
下载前检查网络连接。
-
你可以使用这样的东西:stackoverflow.com/a/31601166/6383029
-
但我不想在执行前等待,我想在执行后等待
-
你还有一个问题。如果 AsyncTask 永远卡住了,你将永远无法运行另一个,因为下一个默认在同一个线程中运行。