android 之 下載管理員 在任何地方監聽進度設計思路

來源:互聯網
上載者:User

標籤: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 之 下載管理員 在任何地方監聽進度設計思路

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.