关于框架有意见 欢迎联系我一起探讨。
问答是happy
http://blog.csdn.net/b275518834/article/details/8247685
操作方式:输入文本框设置线程数
点击第一个按钮请求10个地址信息
点击第二个按钮中断10个地址信息
1:判断当前网络环境
2:编写了3套方案
Old_GridViewActivity 简单线程回调
AsyncTask_GridViewActivity 使用android自带的AsyncTask类实现
Demo_GridViewActivity 队列任务管理 线程控制
Demo_GridViewActivity方式
1:队列优先级 (如果想要listview中移动的区域优先被显示,而不是从上到下显示图片,可以把新建的任务提到任务队列前端)
2:实现了:中断任务的功能(比如进入一个Activity会开启大量任务,如果退出这个Activity 则应该停止此Activity中驻留的任务)
3:为何采用drawable不用bitmap
bitmap优点是位图运算效率优秀
但drawable的存储体积比bitmap小
4:如果任务被起名字则禁止重复提交任务 (避免某些请求未处理完又被创建)
5:先执行缓存数据后执行请求数据 (缓存性能)
6:使用状态模式 观察者模式更好的处理多线程
最初的想法:网络优化开发框架 (移除任务未完成)
网络稳定,系统运行稳定性,大内存消耗稳定,长时间运行稳定性
(旧的系统症结所在)
开启过多线程,导致系统频繁切换多个线程,导致处理速度过慢,经常出现未响应。
代码经常写的换繁多无序,维护困难。
使用类似银行叫号系统
线程池内等待网络请求的任务=(排队的人)
最大三个线程=(银行柜台处理业务的窗口)
依次处理任务=(将排队的人依次被叫到处理的号,完成业务的窗口叫号后面排队的人)
如果抛出异常则通知相关单位=(如果银行柜台处理不了一个人的业务就打电话给大堂经理)
设置柜台的监听回调=(A委托B去银行请求数据,当B去银行处理业务失败了,通知A。)
设置撤销机制和线程安全=
某机关让A和B去银行申请业务,A在排队,B正在柜台处理业务,此时机关打来电话说,
这申请业务的需求现在不做,A取消排队,B也‘礼貌的退出’
《例如退出A页面时,终止A页面所有的请求》
任务状态标示-还没处理 处理中 处理结束 处理异常 (有结果但不通知)=(排队人的状态)
任务名 排队人的名字
强制退出
强制退出 抛出强制退出的异常
- 1
- 2
- 3
- 4
- 5
- 6
前往页