活动已泄漏窗口android.widget.PopupWindow API 27 [英] Activity has leaked window android.widget.PopupWindow API 27

查看:206
本文介绍了活动已泄漏窗口android.widget.PopupWindow API 27的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的活动,带有一个弹出菜单.

I have a simple Activity with a inflated popup menu.

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu,menu);

    return super.onCreateOptionsMenu(menu);
}

当我打开菜单并旋转时,出现以下错误:

When i open the menu and rotate i get the following error:

活动已泄漏窗口android.widget.PopupWindow

E/WindowManager:android.view.WindowLeaked:活动com.ehr.CompanyActivity已泄漏窗口android.widget.PopupWindow $ PopupDecorView {f8c5b6f VE ..... ...... ID 0,0-515,504}它最初是在android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:346)在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)在android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:346)在这里添加的android.widget.PopupWindow.invokePopup(PopupWindow.java:1433)位于android.widget.PopupWindow.showAsDropDown(PopupWindow.java:1284)位于android.support.v7.widget.AppCompatPopupWindow.showAsDropDown(AppCompatPopupWindow.java:76) android.support.v7.widgetList上的.support.v4.widget.PopupWindowCompat $ PopupWindowCompatApi19Impl.showAsDropDown(PopupWindowCompat.java:115)在android.support.v4.widget.PopupWindowCompat.showAsDropDown(PopupWindowCompat.java:219P)在android.show.v7.widgetList. (ListPopupWindow.java:733)在android.support.v7.view.menu.StandardMenuPopup.tryShow(StandardMenuPopup.jav a:176),位于android.support.v7.view.menu.StandardMenuPopup.show(StandardMenuPopup.java:203),位于android.support.v7.view.menu.MenuPopupHelper.showPopup(MenuPopupHelper.java:289) .v7.view.menu.MenuPopupHelper.tryShow(MenuPopupHelper.java:176)在android.support.v7.widget.ActionMenuPresenter $ OpenOverflowRunnable.run(ActionMenuPresenter.java:805)在android.os.Handler.handleCallback(Handler.java) :790)位于android.os.Handler.dispatchMessage(Handler.java:99),位于android.os.Looper.loop(Looper.java:164),位于android.app.ActivityThread.main(ActivityThread.java:6494),位于Java .lang.reflect.Method.invoke(本机方法)位于com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438)

E/WindowManager: android.view.WindowLeaked: Activity com.ehr.CompanyActivity has leaked window android.widget.PopupWindow$PopupDecorView{f8c5b6f V.E...... ......ID 0,0-515,504} that was originally added here at android.view.ViewRootImpl.(ViewRootImpl.java:485) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:346) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93) at android.widget.PopupWindow.invokePopup(PopupWindow.java:1433) at android.widget.PopupWindow.showAsDropDown(PopupWindow.java:1284) at android.support.v7.widget.AppCompatPopupWindow.showAsDropDown(AppCompatPopupWindow.java:76) at android.support.v4.widget.PopupWindowCompat$PopupWindowCompatApi19Impl.showAsDropDown(PopupWindowCompat.java:115) at android.support.v4.widget.PopupWindowCompat.showAsDropDown(PopupWindowCompat.java:219) at android.support.v7.widget.ListPopupWindow.show(ListPopupWindow.java:733) at android.support.v7.view.menu.StandardMenuPopup.tryShow(StandardMenuPopup.java:176) at android.support.v7.view.menu.StandardMenuPopup.show(StandardMenuPopup.java:203) at android.support.v7.view.menu.MenuPopupHelper.showPopup(MenuPopupHelper.java:289) at android.support.v7.view.menu.MenuPopupHelper.tryShow(MenuPopupHelper.java:176) at android.support.v7.widget.ActionMenuPresenter$OpenOverflowRunnable.run(ActionMenuPresenter.java:805) at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)

我几乎没有写更多的通用代码.

Its pretty much a generic code i didnt wrote anything more.

推荐答案

问题是您夸大了菜单,但仍然返回了super.onCreateOptionsMenu(menu);.将返回值更改为true.

The problem is that you have inflated the menu but still, you are returning the super.onCreateOptionsMenu(menu);. Change return value as true.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
     MenuInflater inflater = getMenuInflater();
     inflater.inflate(R.menu.menu,menu);

     return true;
}

这篇关于活动已泄漏窗口android.widget.PopupWindow API 27的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆