我在onDismiss
中有以下DialogFragment
回调。
public class MyDialogFragment extends DialogFragment {
@Override
public void onDismiss(DialogInterface dialog) {
// How to check whether this callback is caused by configuration change,
// Or real dismiss?
super.onDismiss(dialog);
}
}
onDismiss
在以下情况下会被调用。
DialogFragment
。dismiss()
。我想通过配置更改(情况4)区分“实际解雇”(情况1&2&3)
在Activity
中,我通常这样做是为了区分。
@Override
public void onPause() {
super.onPause();
if (this.isFinishing()) {
// Real "termination"
}
}
如何在DialogFragment
中实现类似的目的
答案 0 :(得分:0)
Activity
类提供了isChangingConfigurations()
调用,它使您可以检查活动当前是否正在进行配置更改。如果您可以在onDismiss()
回调期间访问活动,则可以使用它。
但是,对话框从活动中分离后 被关闭,因此getActivity()
在此回调中将返回null。不过,您可以通过实现onAttach()
回调来存储对该活动的引用。
public class MyDialogFragment extends DialogFragment {
private MyActivity activity;
@Override
public void onAttach(Context context) {
super.onAttach(context);
this.activity = (MyActivity) context;
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
if (activity.isChangingConfigurations()) {
// your code here
}
}
}