Android 按下home键后,DialogFragment将丢失或隐藏
我正在显示一个不可取消的dialogFragment。但当我按下home按钮或锁定屏幕并返回应用程序时,对话框片段消失。之后,我可以单击后退按钮,当我单击后退按钮并再次返回应用程序时,对话框片段再次出现Android 按下home键后,DialogFragment将丢失或隐藏,android,android-fragments,android-alertdialog,android-dialogfragment,android-dialog,Android,Android Fragments,Android Alertdialog,Android Dialogfragment,Android Dialog,我正在显示一个不可取消的dialogFragment。但当我按下home按钮或锁定屏幕并返回应用程序时,对话框片段消失。之后,我可以单击后退按钮,当我单击后退按钮并再次返回应用程序时,对话框片段再次出现 private void showRoutePauseDialog() { FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); Fragment prev
private void showRoutePauseDialog() {
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
Fragment prev = getFragmentManager().findFragmentByTag(RouteActivityPausedDialogFragment.TAG);
if (prev != null) {
ft.remove(prev);
}
ft.commit();
routeActivityPausedDialogFragment = new RouteActivityPausedDialogFragment();
routeActivityPausedDialogFragment.setListener(this);
routeActivityPausedDialogFragment.setCancelable(false);
routeActivityPausedDialogFragment.show(getActivity().getSupportFragmentManager(), RouteActivityPausedDialogFragment.TAG);
}
这只发生在这个对话框片段上。我在这个片段中还有其他的片段,它们工作得很好。。。我还注意到,如果我显示另一个dialogFragment(工作正常的),然后按home并返回到应用程序,然后显示RouteActivityPausedDialogFragment并按home并返回,那么这个dialogFragment也工作正常…也许你可以使用一个布尔标志,你可以将其存储在SharedReferences中。因此,每次你的活动出现在前台时,检查该标志并相应地再次执行setCancelable(false)。这与cancelable无关。问题是,当我按home按钮返回应用程序后,对话框不会显示。因此,请尝试从onResume()调用该对话框片段,因此,在您的活动返回前台后,它将再次显示。看,问题是如果我在此dialogFragment之前显示另一个dialogFragment,那么在我按下home按钮并返回应用程序后,此dialogFragment将显示(它正确显示),但是如果我没有在这个dialogFragment之前显示另一个dialogFragment,那么这个dialogFragment在我从主页返回按钮后就不会显示。因此,如果我在onResume中显示dialogFragment,在第一种情况下,dialogFragment将显示2次,在第二种情况下,它将显示1次(现在也是正确的),我遇到了相同的问题。解决这个问题有没有运气?