android 中的PopupWindow错误处理

来源:互联网 发布:数据挖掘要学哪些东西 编辑:程序博客网 时间:2024/06/01 08:37

今天学习到android 中的PopupWindow,可以正常使用,弹出,但是在窗口弹出没有消失的时候,按back,返回到桌面时报错:
4003-4003/com.example.snoopy.drop_down E/WindowManager﹕ Activity com.example.snoopy.drop_down.MainActivity has leaked window android.widget.PopupWindowPopupViewContainer@413a6130thatwasoriginallyaddedhereandroid.view.WindowLeaked:Activitycom.example.snoopy.dropdown.MainActivityhasleakedwindowandroid.widget.PopupWindowPopupViewContainer@413a6130 that was originally added here
但是,没有弹出时,按下back就不会报错,由此推断是popupwindow未及时关闭造成(比较愚笨,也看不懂错误信息),所以在 onDestroy()中添加如下代码:
if(null != myPopupWindow && myPopupWindow.isShowing()){
myPopupWindow.dismiss();
if(null == myPopupWindow){
Log.e(“MainActivity”,”null == myPopupWindow”);
}
}
错误消失,但是新的错误出现:
InputQueue-JNI﹕ channel ‘41c39b88 PopupWindow:41386a98 (client)’ ~ Publisher closed input channel or an error occurred. events=0x8
搞了好久,推断之前的关闭代码位置不对,于是放置于
onBackPressed()中
运行!OK!!!

0 0