Android,PopupMenu.show()时添加窗口失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android,PopupMenu.show()时添加窗口失败相关的知识,希望对你有一定的参考价值。

我在WebView Activity中添加了一个菜单。当PopupMenu.show()执行时,应用程序有时会崩溃。

java.lang.RuntimeException:在android.view.WindowManagerImpl.addView(WindowManagerImpl。)的android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:260)的android.view.ViewRootImpl.setView(ViewRootImpl.java:536)中添加窗口失败。 java:69)在android.widget.PopupWindow.invokePopup(PopupWindow.java:1019)的android.widget.PopupWindow.showAsDropDown(PopupWindow.java:925)在android.widget.ListPopupWindow.show(ListPopupWindow.java:629)at com.android.internal.view.menu.MenuPopupHelper.tryShow(MenuPopupHelper.java:148)位于android.widget.PopupMenu.show的com.android.internal.view.menu.MenuPopupHelper.show(MenuPopupHelper.java:113) PopupMenu.java:167)com.lukouapp.app.ui.base.LKWebActivity.showMenu(LKWebActivity.java:275)at com.lukouapp.app.ui.base.LKWebActivity.onOptionsItemSelected(LKWebActivity.java:316)at android .app.Activity.onMenuItemSelected(Activity.java:2618)在android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:350)

答案

您只需在显示popup / alertDialog之前添加!isFinishing()检查

这是它的示例代码

if(popup!=null&&!isFinishing()) {
    popup.show();
}

以上是关于Android,PopupMenu.show()时添加窗口失败的主要内容,如果未能解决你的问题,请参考以下文章

当android应用程序后台运行时如何在android中隐藏视图(在后台运行时不停止android拍摄快照)[重复]

学习Android开发时,Android版本重要吗? [关闭]

Android :: 需要在android应用程序恢复不活动时执行一些任务

将 android 项目从 Eclipse 导入 Android Studio 时发生错误

eclipse中android悬停时按钮的Android颜色变化

Android 运行时权限