为了账号安全,请及时绑定邮箱和手机立即绑定

count无论如何都会是3

有个问题,老师这个无论如何都会打印下载成功的消息,因为不管有没有下载你都对主线程发送了消息,而且count都会增加1,我感觉有问题!

正在回答

4 回答

仔细看看还真是这样啊,看来学java不能钻牛角尖!上一课写的代码也是这个问题。

0 回复 有任何疑惑可以回复我~

是这样的。。我第一次RandomAccessFile 里的 seek这个没有指定但还是提示成功的,第二次没有判断

是否是最后一个线程

if(i==2){
   end = contentLength;
}这个,但结果显示都是成功的。

0 回复 有任何疑惑可以回复我~

3个线程,每次成功,才会发生一个message给handleMessaage,count才会加1,这里的代码并没有循环加1,所以不可能出现你说的问题

0 回复 有任何疑惑可以回复我~

首先sendMessage(message)是放在下载语句之后,如果下载过程出错,会抛出异常,程序中止,sendMessage(message)不会被执行;也就是说,sendMessage(message)执行了肯定是下载成功了,而只有当sendMessage(message)执行了,handleMessage才会执行,count才+1,即只有下载成功了count才+1。

总体上:执行完下载语句→sendMessage(message)→handleMessage()→count+1.

关键是理解handleMessage()并不会自动执行,只有sendMessage(message)之后才会调用它。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android中的Http通信
  • 参与学习       64668    人
  • 解答问题       306    个

了解Android-http网络编程应用,常见忘了请求相关应用

进入课程

count无论如何都会是3

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信