android-query添加OnProgressListener最近再找好用的异步http通信库,在OSC上找到一款功能强大的android轻
android-query添加OnProgressListener
最近再找好用的异步http通信库,在OSC上找到一款功能强大的android轻量级辅助库android query,支持view的绑定,链式调用,http通信,网页或本地图片的异步加载,以及强大的cahe功能,当然还有更多的细节可以到Google Source的页面上查看:https://code.google.com/p/android-query/
但是在异步操作显示进度上有些不完善,例如只支持progressbar的绑定,不能动态获得进度,我觉得在很多场合上动态地获得进度更加灵活,所以在android query的代码上修改了一下,加入了OnProgressListener类,没有用接口是因为不能绑定数据,没有通过继承来绑定数据和调用方法那么方便。
具体修改的代码:
class MyOnProgressListener extends OnProgressListener {private XMLData xd;public MyOnProgressListener(XMLData _xd) {xd = _xd;}@Overridepublic void onProgress(boolean unknown, int total_bytes, int current) {if(!unknown && total_bytes!=0)xd.downlad_progress = current*100/total_bytes;elsexd.downlad_progress = 0;View parent = ((View)xd.getTag(0));if(parent.getTag() == xd) {ProgressBar pb = (ProgressBar)parent.findViewById(R.id.ih_progressBar);pb.setProgress(xd.downlad_progress);pb.setVisibility(View.VISIBLE);my_handler.sendMsg(xd);TextView tv = (TextView)parent.findViewById(R.id.ih_progressBar_text);tv.setVisibility(View.VISIBLE);parent.findViewById(R.id.ih_info).setVisibility(View.INVISIBLE);}if(MyData.d.get().a_downloadlist != null) {parent = ((View)xd.getTag(1));if(parent != null && parent.getTag() == xd) {ProgressBar pb = (ProgressBar)parent.findViewById(R.id.ih_progressBar);pb.setProgress(xd.downlad_progress);pb.setVisibility(View.VISIBLE);my_handler.sendMsg(xd);TextView tv = (TextView)parent.findViewById(R.id.ih_progressBar_text);tv.setVisibility(View.VISIBLE);parent.findViewById(R.id.ih_info).setVisibility(View.INVISIBLE);}}}}android query的其他特性我在这里就不解释了,官网上都有详细说明,之前我也看过国内类似的开源库androidfinal(afinal),虽然某些方面确实方便一些,但是比起android query来说确实有很多地方还需要改进,而且感觉是跟风android query,名字也起得稍微有些太霸气了(并非批评),不过我还是会持续关注afinal的,支持国产!
