我有一个DialogFragment正在使用的子类,但被解散时会崩溃。它并非每次都会发生,而且我似乎无法找到一种模式。崩溃发生在重写onDismiss()函数内部。
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter dialog
at com.foo.MyDialogFragment.onDismiss(Unknown Source:2)
这是DialogInterface参数,它发生在我的任何代码运行之前,因此我无法采取任何措施来阻止它。我无法将参数dialog设为可为空,因为这样会破坏合同,DialogFragment并且不会进行编译。
知道是什么原因造成的,更重要的是,我该怎么办?看来这永远都不应该发生,但我在这里。
因此,您将DialogFragment子类化了吗?
然后,您应该只能够重写onDismiss,例如,当对话框不为空时,仅调用super.onDismiss()
您还可以覆盖onDismiss和Log来查看何时确切调用它
这也可能起作用:
@Override
public void dismiss()
{
if (getFragmentManager() != null) super.dismiss();
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。