码迷,mamicode.com
首页 > 移动开发 > 详细

android 之 下载管理器 在任何地方监听进度设计思路

时间:2014-11-14 14:20:56      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:android   style   使用   sp   on   ad   ef   as   new   

大家想必,做应用市场,或者其他下载,都想在任何地方都监听进度,并且很好的实现。

在这里分享一个比较简单,并且防止内存溢出等情况。我们使用的弱引用来进行绑定View进行更新进度方法。

Map<String, WeakReference<View>> viewListem = new HashMap<String, WeakReference<View>>();// 对进度条进行弱引用

防止内存不够的时候进行回收。

key为下载地址

value 进度条

//添加进度条引用。

public synchronized void addViewToCache(String path, View view) {

if (viewListem == null) {
return;
}
WeakReference<View> softView = new WeakReference<View>(view);
viewListem.put(path, softView);
}
//获取进度条。
public synchronized View getViewByPath(String path) {
if (viewListem == null) {
return null;
}
// 从缓存中取软引用的View对象
WeakReference<View> softView = viewListem.get(path);
// 判断是否存在软引用
if (softView == null) {
return null;
}
// 取出View对象,如果由于内存不足View被回收,将取得空
View view= softView.get();
return view;
}


接下来就是,就到进度监听的回调接口去,获取到对应的View进行更新进度吧。搞定。

是不是既简单又实现方便。又防止内存溢出。

android 之 下载管理器 在任何地方监听进度设计思路

标签:android   style   使用   sp   on   ad   ef   as   new   

原文地址:http://blog.csdn.net/xufeifandj/article/details/41116921

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!