Activity has leaked window that was originally added

来源:互联网 发布:php 实例化对象的本质 编辑:程序博客网 时间:2024/05/17 10:38

Activity-A的子Fragment-B中创建了一个Dialog-C,Dialog-C需要使用Activity-A作为Context,该错误是由于Activity被结束后,Dialog-C所引用的Context为空。


该错误是由于在Activity中创建并显示了Alertdialog,但并未使用Activity提供的showDialog()方法,因此导致在Activity被结束后,Alertdialog所引用的context为空。


解决办法为:

1,将dialog采用oncreateDialog的方式创建,交由系统维护。

2,在Activity-A的onDestroy()方法中将该alertdialog dismiss掉。

@Override  protected void onDestroy() {      if(mDialog != null) {          mDialog.dismiss();      }      super.onDestroy();  } 


Leaking resources的坏处(摘至 Android Developer -> App Resources -> Handling Runtime Changes



0 0
原创粉丝点击