com.chanven.lib:cptr 導致的記憶體洩露
阿新 • • 發佈:2018-12-18
最新在專案中出現記憶體洩露的問題,找半天無法定位問題
無奈只能採用二分法逐個排除,最後定位到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,不知道這些人是否遇到了同樣的問題。
引庫有風險,
使用需謹慎。