我想使用asynctask在服务器上执行登录,并在连接结束前显示进度对话框。
由于请求可能没有响应,我需要设置asynctask的超时值。我发现当我简单地使用.execute()
时,程序运行良好,但没有实现超时功能。当我使用.get(1000, TimeUnit.MILLISECONDS)
时,程序仅暂停1秒,没有显示进度对话框。
任何人都可以告诉我调用.get(1000, TimeUnit.MILLISECONDS)
时是否执行任务?如果是,为什么没有执行的迹象;如果没有,如何实现asynctask的超时功能?
最佳答案
如果在主线程(aka.将阻止执行。
您可能需要在单独的线程中调用它。
编辑
沃格拉对此写了一篇很好的文章:AsyncTask.get()
从这里获取代码,我做到了,我向您保证它在不阻塞主ui线程的情况下工作得很好。