【问题标题】:popupwindow : window get leaked on back buttonpopupwindow : 窗口在后退按钮上泄露
【发布时间】:2015-02-05 19:35:05
【问题描述】:

我正在创建popupwindow,如下所示,

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();
        LinearLayout linearLayout = new LinearLayout(TimerGameActivity.this);
        TextView textView = new TextView(TimerGameActivity.this);
        textView.setText("Quit? Score will be lost....");
        linearLayout.addView(textView);
        PopupWindow popupWindow = new PopupWindow(linearLayout, 200, 100,true);
        popupWindow.showAtLocation(linearLayout, Gravity.BOTTOM, 10, 10)
}

但我面临以下问题。当我按下后退按钮时,它不允许我显示弹出窗口并破坏活动,它给了我以下错误:

04-18 15:04:55.457: E/WindowManager(590): Activity has leaked window android.widget.LinearLayout@44f88be8 that was originally added here

帮帮我。 谢谢

【问题讨论】:

    标签: android


    【解决方案1】:

    你需要删除:

    super.onBackPressed();
    

    【讨论】:

      【解决方案2】:

      很明显会出现异常,因为当您按下后退按钮时,super.onBackPressed(); 被触发并且您的 Activity 即将完成,同时您正试图显示一个 PopupWindow。因此,没有用于显示 PopupWindow 的 UI。因此,只需删除 super.onBackPressed(); 并尝试显示 PopupWindow

      【讨论】:

        【解决方案3】:

        onBackPressed() 将销毁您的活动,同时您使用同一活动的引用进行 UI 操作,那么它将如何工作?

        参考Which actions does the back button/back key on Android trigger?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-05-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-16
          • 2016-06-26
          相关资源
          最近更新 更多