Java OnBackpress和Backback在退出前显示空白屏幕

Java OnBackpress和Backback在退出前显示空白屏幕,java,android,android-fragments,onbackpressed,Java,Android,Android Fragments,Onbackpressed,早些时候,我在onBackPressed上遇到了一个问题,在一些帮助下得到了解决 在做了一些研究之后,我发现由于我的起始片段在backback中,它产生了一个额外的“back”计数,所以当我试图退出我的应用程序时,我会看到一个空白屏幕: P>而不是空白屏幕,我应该得到一个提示:“你肯定要退出”而不是空白。从空白屏幕,我得到了我的“你肯定退出”菜单,但我宁愿不看到一个额外的空白屏幕。 我还注意到,它似乎没有更新背面的片段标题,但我认为这是另一个问题 我不确定如何将我的家庭碎片与backbac

早些时候,我在onBackPressed上遇到了一个问题,在一些帮助下得到了解决

在做了一些研究之后,我发现由于我的起始片段在backback中,它产生了一个额外的“back”计数,所以当我试图退出我的应用程序时,我会看到一个空白屏幕:

<> P>而不是空白屏幕,我应该得到一个提示:“你肯定要退出”而不是空白。从空白屏幕,我得到了我的“你肯定退出”菜单,但我宁愿不看到一个额外的空白屏幕。 我还注意到,它似乎没有更新背面的片段标题,但我认为这是另一个问题

我不确定如何将我的家庭碎片与backbackback计数分开。如果我想避免将其添加到堆栈中,但将其作为导航项保留,我甚至不知道该如何工作。

代码:
我想我是在发了这篇文章后才发现的

onBackPressed()中的此部分:

是用来帮助设置对主页内容的检查的,但是如果我使用我的getHome()方法,并在OnCreate下设置它:

private void getHome(){
    fragment = new Large_Monsters();

    if (fragment != null) {
        FragmentManager fragmentMgmt = getSupportFragmentManager();
        fragmentMgmt.beginTransaction().replace(R.id.content_frame, fragment).commit();
    }
}

这让我可以设置我的主页,并避免在onBackPressed上进行双重检查。但主要是,这避免了在我的onNavigationItemSelected区域设置检查,让android像往常一样处理onBackPressed。

我想我在发布这篇文章后就找到了答案

onBackPressed()中的此部分:

是用来帮助设置对主页内容的检查的,但是如果我使用我的getHome()方法,并在OnCreate下设置它:

private void getHome(){
    fragment = new Large_Monsters();

    if (fragment != null) {
        FragmentManager fragmentMgmt = getSupportFragmentManager();
        fragmentMgmt.beginTransaction().replace(R.id.content_frame, fragment).commit();
    }
}

这让我可以设置我的主页,并避免在onBackPressed上进行双重检查。但主要是,这避免了在我的onNavigationItemSelected区域设置检查,让android像往常一样处理onBackPressed。

您不必在主页上调用addToBackStack(null)(例如:大怪物片段)

因此,只需像这样添加您的onCreate方法

Large_Monsters fragment = new Large_Monsters();

if (fragment != null) {
    FragmentManager fragmentMgmt = getSupportFragmentManager();
    fragmentMgmt.beginTransaction().replace(R.id.content_frame, fragment).commit();
}

在左侧菜单中,您只需检查此片段是否存在,如果不存在,则将其替换,否则将删除其他片段。

您无需在主页上调用addToBackStack(null)(例如:大型怪物片段)

因此,只需像这样添加您的onCreate方法

Large_Monsters fragment = new Large_Monsters();

if (fragment != null) {
    FragmentManager fragmentMgmt = getSupportFragmentManager();
    fragmentMgmt.beginTransaction().replace(R.id.content_frame, fragment).commit();
}

在左侧菜单中,您只需检查此片段是否存在,如果不存在,请将其替换,否则请删除其他片段。

调试onbackpress方法并查看哪一行正在执行。调试onbackpress方法并查看哪一行正在执行。谢谢!这比我的解决方案好一点,但两者的效果差不多!谢谢这比我的解决方案好一点,但两者的效果差不多!