Android中WindowManager : android.view.WindowLeaked: Activity xxx.wxapi.WXPayEntryActivity has leaked

今日在做微信充值的時候莫名的出現了這個問題,搞得我不知所措,錯誤日誌如下:

根據報錯的具體日誌定位到到了我所封裝的一個網絡工具類裏面的這個地方

(百度這樣說道)錯誤提示指向項目中的一個progressDialog。經過多方查資料,發現產生這個錯誤的原因:我們通常會在執行異步任務前開一個進度提示彈出框(progressDialog),異步任務結束後關閉這個progressDialog。當執行異步任務出錯,或者其他一些原因導致當前Activity 被finish掉的時候,沒有關閉這個progressDialog,從而導致窗體句柄泄漏。

解決方法:重寫當前出錯的Activity的onDestroy()方法,並在方法中dismiss掉progressDialog。

 

Tips:

另外,出現這個錯誤時,我們通常會只注意到這個錯誤,並解決它,而忽視異步任務出錯的原因。因此在解決這個錯誤後,需測試,看下異步任務是否還有錯誤,只有把異步任務中的錯誤排除,纔算徹底解決這個問題。

其實和我的錯誤類似吧,但是我沒有這樣做,我做了如下操作

於是就把錯誤的地方改爲這樣就好了

stopProgressDialog();方法

在測試,閃退問題就不見了,於是問題就解決了,原因也就是我沒有將progressDialog消失之後賦值爲null

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章