我有一个具有复杂工作流程的自定义AppCompatDialogFragment。
我需要监视父活动中工作流的状态,以便知道它是成功,失败还是仍在进行中。
为此,我创建了一个接口MyListener
,使我的父活动实现该接口并在Dialog的onAttach期间将其作为字段获取:
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof MyListener)
listener = (MyListener) context;
if (listener == null) {
Crashlytics.logException(new RuntimeException("listener == null"));
throw new RuntimeException("listener == null");
}
listener.loading(true);
}
这是一个非常简单的代码,我仅在1个活动中实例化我的自定义对话框以测试其运行是否正常,但有时它会在生产环境中崩溃
我的应用每天有大约5,000个用户,因此我无法真正在测试中重现崩溃,我估计大约有5%的用户会遇到此问题
IM 100%确保我仅将此对话附加到一项活动,该活动确实实现了MyListener
,但仍然会发生。
有人可以解释我何时以及为何崩溃?