android 5秒后进入,Android/Java:如何在5秒后停止下载?

我正在使用AsyncTask来下载文件,目的是测量连接的下载速度。我想在5秒后停止下载,以便我可以检查下载的总字节数并计算速度。下面是我使用(这被放置在doInBackground()方法中)的代码:Android/Java:如何在5秒后停止下载?

try{

InputStream is = new URL("http://www.domain.com/linux.iso").openStream();

byte[] buf = new byte[1024];

long startTime = System.nanoTime();

long limitTime = System.nanoTime();

long difference = 0;

while (difference < 5000000000){ /*5 billion nanoseconds = 5 seconds*/

is.read(buf);

limitTime = System.nanoTime();

difference = limitTime - startTime;

}

is.close();

}

catch(Exception e){

e.printStackTrace();

}

当连接到无线网络,这是工作的罚款。测得的速度非常准确,完成测试需要5秒。但是,一旦我转移到3G,测试需要10到15秒才能完成(我注意到连接越慢,完成时间就越长)。

怎么回事?我猜测操作系统正在等待它发送的read()请求的回复,但不确定。

你知道一种方法,无论如何都会在5秒内限制下载吗?

在此先感谢。

+0

在我的答案采取:) –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值