windowmanger的addview,removeView方法出現的異常

最近在調試一個關於windowmanger添加或移除view時產生詭異的bug,問題就是出現在windowmanger.addview(View view)這行代碼。

具體情況:代碼走到這行,突然沒法往下走了,程序沒有崩潰,logcat裏也沒能抓到error級別的日誌。


無意中,發現了warning級別的日誌。

java.lang.IllegalStateException:xxx has already been added to the window manager.

錯誤產生的原因是在使用windowmanager.addView(View view)方法時試圖添加一個已以被添加的view,

而後又嘗試在使用windowmanager.addView(View view)之前調用windowmanager.removeView(View view),可沒想到是又引發了另一個異常

java.lang.IllegalArgumentException: View not attached to window manager

錯誤產生的原因使用removeView方法時嘗試移除一個就沒有被添加的view導致了上述的錯誤。


上面的錯誤的產生,必然是在使用windowManger添加view或移除view沒有配對使用好。爲了快速修復,所以前期還是通過捕捉前面的異常再進行相關處理來進行補救。




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