1. 程式人生 > >Android Fragment實現懶載入

Android Fragment實現懶載入

在最近的專案中一個介面中有四個Fragment。每個碎片中都要進行網路請求。

週期也開始並進行了載入。後來在網上進行了搜尋找到了一個非常簡單的官方自帶的方法setUserVisibleHint(boolean isVisibleToUser)。我們可以通過這個方法來判斷哪個碎片現在正在顯示,當該碎片正在顯示在我們眼前時為true。這樣我們就可以一句該方法來進行網路請求了。下邊廢話不多說直接上程式碼:

private long refreshTime = 0;  //請求時間

    public void setUserVisibleHint(boolean isVisibleToUser) {
        if
(isVisibleToUser && isVisible()) { if (refreshTime == 0 || (refreshTime != 0 && (System.currentTimeMillis() - refreshTime) > 30 * 60 * 1000)) { if (isConnected) { initData();// 從後臺獲取資料 } } } super.setUserVisibleHint(isVisibleToUser); }; ...
... // 網路請求方法 private void initData() { myProgressDialog.show(); RequestParams params = new RequestParams(); params.addBodyParameter("sessionId", sessionId); params.addBodyParameter("pageNo", "1"); params.addBodyParameter("pageSize", "12"); netUtil.getNetGetRequest(findHotUrl, params); // 在這裡我們將請求時間賦值 可以達到三十分鐘後再請求的效果(雖然有時候 螢幕黑一段時間 再次喚醒的時候也會載入進行網路請求這個就暫時沒有明白) refreshTime = System.currentTimeMillis(); } ...
... .. if (getUserVisibleHint()) { initData(); // 請求的時候一個判斷 }

很簡單的一個方法就解決了懶載入的問題。希望對大家有幫助!(菜雞成長史ing)