2011-11-17 27 views
2

在我的应用程序中,我使用AsyncTask类来创建HTTP连接并下载要显示的信息。Android - 如何处理AsyncTask超时?

有时,数据量很大,需要一些时间。如果用户和他们的手机恰好处于接收缓慢/不佳/有问题的地方,那么可能会出现HTTP超时,或者他们可能一起连接不上,等等......

处理这些超时的最佳方法是什么优雅?

我一直在创建一个Runnable处理程序,该程序在启动AsyncTask后运行XX秒。 Runnable只会测试AsyncTask是否仍在运行,如果是这样,假设数据连接速度太慢,请继续并杀死线程并正常提供有关数据连接的错误消息。

这是一个很好的方法还是有更实际的方法?

回答

1

自从我为Android编程已经有一段时间了,但我知道AsyncTask有一个更新事件(以跟踪下载百分比等)。你可以用它来检查自己。

+0

这只适用于你知道你正在做的事情有多少次迭代的情况。就我而言,我正在从网页下载一大堆内容。实际上并没有一种简单的方法来遍历整个过程(除了可能提前从HTTP头中确定内容大小或者沿着这些行来确定内容大小......)。 –

+2

我不能相信这样一个可怜的恶霸得到了绿色标记大声笑! – Josh