标注:eoeandroid论坛发过相同帖子
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=290946&fromuid=102217=======================正文=========================================================
开发目的:
在GirdView上,实现多任务下载。
现象:
响应事件为setOnItemClickListener()
当点击多个图标(下载任务)时,执行多线程下载(N*每个任务2线程),逐次停顿。
当再次点击某一个图标时,须停顿按下在抬起(暂停下载)才能被响应。
实现:
UI或叫主线程(下载区域).setAdapter(自定义界面结构 4*2单元);
-> 子线程部分,后台短连接(4k池)多线程(N*2)取数据, new Thread(new Runnable()).start();
-> 主线程控制启动和暂停,由下载器对象(子线程)通知 new Handler(),由它触发.notifyDataSetChanged(); 呈现下载全过程。
问题:
1.子线程阻塞UI线程,使其不能触发UI事件。
-> 测试 当前UI生成一按钮控制下载停止,可以生效。
2.如题,GirdView点击事件抬起时,未能排进线程队列中?(长时间按下时在抬起可以生效 这点没有想通)
AndroidUI界面多线程
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=290946&fromuid=102217=======================正文=========================================================
开发目的:
在GirdView上,实现多任务下载。
现象:
响应事件为setOnItemClickListener()
当点击多个图标(下载任务)时,执行多线程下载(N*每个任务2线程),逐次停顿。
当再次点击某一个图标时,须停顿按下在抬起(暂停下载)才能被响应。
实现:
UI或叫主线程(下载区域).setAdapter(自定义界面结构 4*2单元);
-> 子线程部分,后台短连接(4k池)多线程(N*2)取数据, new Thread(new Runnable()).start();
-> 主线程控制启动和暂停,由下载器对象(子线程)通知 new Handler(),由它触发.notifyDataSetChanged(); 呈现下载全过程。
问题:
1.子线程阻塞UI线程,使其不能触发UI事件。
-> 测试 当前UI生成一按钮控制下载停止,可以生效。
2.如题,GirdView点击事件抬起时,未能排进线程队列中?(长时间按下时在抬起可以生效 这点没有想通)
AndroidUI界面多线程
可以认为是由于GirdView不停得更新,导致其控件无法响应setOnItemClickListener()Bug产生:
实时下载进度
测试:
去掉进度UI