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)