Android OnPause()之后的片段OnResume()

Android OnPause()之后的片段OnResume(),android,android-fragments,onresume,onpause,Android,Android Fragments,Onresume,Onpause,我有一个应用程序,其中一部分是一个片段,相机在其中拍摄了一张照片,当拍摄照片时,另一个片段被加载以显示图像。如果不满意,用户可以选择重新拍摄照片。这应返回到上一个片段(摄影机),并在显示叠加时执行,但仍会显示先前拍摄的图像 编辑** 我通过它进行了调试,当拍摄图像并加载下一个片段时,不会调用onpause(),因此,当用户单击retake时,不会调用onresume,它会重新启动我的相机。我知道这里也有类似的问题,但我似乎找不到问题的答案。**编辑 应该说,我正在与其他人在这里工作,这造成了混乱

我有一个应用程序,其中一部分是一个片段,相机在其中拍摄了一张照片,当拍摄照片时,另一个片段被加载以显示图像。如果不满意,用户可以选择重新拍摄照片。这应返回到上一个片段(摄影机),并在显示叠加时执行,但仍会显示先前拍摄的图像

编辑** 我通过它进行了调试,当拍摄图像并加载下一个片段时,不会调用onpause(),因此,当用户单击retake时,不会调用onresume,它会重新启动我的相机。我知道这里也有类似的问题,但我似乎找不到问题的答案。**编辑

应该说,我正在与其他人在这里工作,这造成了混乱。下面是转到下一个片段和转到上一个片段的两种方法

下一步

public void gotoNextFragment(String nextTag, Fragment nextFragment){

    FragmentManager  fm = getSupportFragmentManager();

    FragmentTransaction ft = fm.beginTransaction();
    ft.setCustomAnimations(R.animator.enter_slide_in, R.animator.enter_slide_out);

    boolean newlyCreated = false;
    if(nextFragment == null){
        nextFragment = Fragment.instantiate(this, nextTag);
        newlyCreated = true;
    }

    //hide current fragment
    ft.hide(fm.findFragmentByTag(Misc.currentContentFragmentTag));

    if(newlyCreated){
        ft.add(R.id.content_frame, nextFragment, nextTag);
    }
    else{
        ft.show(nextFragment);
    }
    ft.addToBackStack(null);
    ft.commit();
    Misc.currentContentFragmentTag = nextTag;

}
以前的

public void gobackToPreviousFragment(String preFragmentTag,Fragment f){

    FragmentManager  fm = getSupportFragmentManager();

    FragmentTransaction ft = fm.beginTransaction();
    ft.setCustomAnimations(R.animator.close_slide_in,R.animator.close_slide_out);

    ft.show(f);
    ft.remove(fm.findFragmentByTag(Misc.currentContentFragmentTag));                    
    ft.addToBackStack(null);
    ft.commit();

    Misc.currentContentFragmentTag = preFragmentTag;

}
如果有人知道我需要做什么才能确保调用onResume(),我将不胜感激

编辑
仍然显示的图像预览是标准相机图像预览的图像预览,而不是来自用于预览的片段

始终在片段运行之前调用onResume()-方法。检查生命周期图-->

始终在片段运行之前调用onResume()方法。检查生命周期图-->

当您
hide()
show()
没有调用
onResume()
的片段时。然后,只有在第一次创建片段时才会得到调用。

当您
hide()
show()
片段时,您不会得到对
onResume()
的调用。然后,只有在第一次创建片段时,您才会收到一个调用。

我理解,我已经通过代码进行了调试,并对此进行了研究。但是,在调用onPause后重新激活片段或活动时,是否也应该调用onResume()。尝试重写onResume()-方法并在其中添加一些Log.i或Toast,以测试它是否真的在应该调用的时候被调用。至少你会在你的问题上得到新的有用信息!虽然不是这样,我知道这一点是因为我在简历中有断点,现在我添加了toast来确定这一点,我确定这不是,但我仍然不知道为什么我理解这一点,我已经调试了我的代码,我已经研究过了。但是,在调用onPause后重新激活片段或活动时,是否也应该调用onResume()。尝试重写onResume()-方法并在其中添加一些Log.i或Toast,以测试它是否真的在应该调用的时候被调用。至少你会在你的问题上得到新的有用信息!虽然不是,我知道这一点,因为我在简历中有断点,现在我添加了吐司,我肯定不是,但我仍然不知道为什么,所以如果我隐藏,我也不会被呼叫暂停?有办法解决这个问题吗?或者,为了调用onPause()和onResume(),您必须替换片段吗?为什么我没有想到…看了太久!!所以,在隐藏时,只需呼叫暂停和相同的显示…(恢复)?@DJ-DOO不完全是。无论您希望在onPause()中发生什么,我都会转到一个新方法并调用它。onResume()也是如此。啊,thx,很高兴知道。我认为隐藏/显示与生命周期有关。@bofredo我也是,但我想这也是一个优势。您可以从隐藏的片段中获得即时响应。你不需要创建所有的东西来再次显示它们。好吧,如果我隐藏,我也不会被呼叫暂停?有办法解决这个问题吗?或者,为了调用onPause()和onResume(),您必须替换片段吗?为什么我没有想到…看了太久!!所以,在隐藏时,只需呼叫暂停和相同的显示…(恢复)?@DJ-DOO不完全是。无论您希望在onPause()中发生什么,我都会转到一个新方法并调用它。onResume()也是如此。啊,thx,很高兴知道。我认为隐藏/显示与生命周期有关。@bofredo我也是,但我想这也是一个优势。您可以从隐藏的片段中获得即时响应。您不需要创建所有内容来再次显示它们。