显示DialogFragment时,调用片段不会暂停

Joa*_*kim 5 android android-fragments onpause android-dialogfragment

在我的应用程序的一部分中,我向用户显示ListView.当用户按下列表中的项目时,DialogFragment显示a.

@Override
public void onClick() {
    android.support.v4.app.FragmentTransaction ft = getFragment().getFragmentManager().beginTransaction();
    ft.addToBackStack(null);
    SingleSettingDialogFragment dialog = SingleSettingDialogFragment.newInstance(...);
    dialog.show(ft, "Single");
}
Run Code Online (Sandbox Code Playgroud)

DialogFragment具有以下结构:

@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
    super.onCreateDialog(savedInstanceSate);
    AlertDialog dialog =  new AlertDialog.Builder(...)
        ...
        .create();
    ...
    return dialog;
}
Run Code Online (Sandbox Code Playgroud)

当用户退出DialogFragment时,我希望onResume()调用调用片段的方法,但事实并非如此.

那么DialogFragments有什么特别之处呢?为什么在显示对话框时暂停调用Fragment?它怎么能实现?

我没有在文档中找到任何对此行为的引用,因此引用是一个加号.

gba*_*tta 6

这可能对您有帮助:链接

事实上,FragmentDialog 本身并不是一个活动,而是包含调用片段的同一活动的一部分。这意味着当显示dialogFragment 时片段不会暂停。

引用我给您的源代码,片段在以下情况下暂停:另一个活动位于前台并具有焦点,但该片段所在的活动仍然可见(前台活动部分透明或不覆盖整个屏幕) 。

希望有帮助

  • 文本的含义是仅当活动暂停时片段才会暂停。由同一活动托管的两个片段(例如您的情况)可以存在于另一个活动的蜜蜂之上。这就是为什么你的片段没有暂停。 (2认同)