1. 程式人生 > >com.chanven.lib:cptr 導致的記憶體洩露

com.chanven.lib:cptr 導致的記憶體洩露

最新在專案中出現記憶體洩露的問題,找半天無法定位問題

無奈只能採用二分法逐個排除,最後定位到com.chanven.lib:cptr 這個庫

PtrFrameLayout 這個類557行程式碼如下:

int delay = (int)((long)this.mLoadingMinTime - (System.currentTimeMillis() - this.mLoadingStartTime));
if (delay <= 0) {
    if (DEBUG) {
        PtrCLog.d(this.LOG_TAG, "performRefreshComplete at once");
    }

    this.performRefreshComplete();
} else {
    this.postDelayed(new Runnable() {
        public void run() {
            PtrFrameLayout.this.performRefreshComplete();
        }
    }, (long)delay);
    if (DEBUG) {
        PtrCLog.d(this.LOG_TAG, "performRefreshComplete after delay: %s", new Object[]{delay});
    }
}

如果在ptrFrameLayout 沒有載入的情況下呼叫 refreshComplete方法,則會出現delay值極大的情況

這個庫竟然還有1000多個star,不知道這些人是否遇到了同樣的問題。

引庫有風險,

使用需謹慎。