OnPause()之后片段OnResume()

时间:2013-08-08 08:59:36

标签: android android-fragments onresume onpause

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

编辑*的 * 我通过它进行调试,当拍摄图像并加载下一个片段时,不会调用onpause(),因此,当用户单击“重拍”时,不会调用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;

}

PREVIOUS

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()我会很感激...

修改 仍然显示的图像预览是标准摄像机图像预览的图像预览,而不是用于预览的片段

2 个答案:

答案 0 :(得分:5)

当您hide() show()分段时,您无法接听onResume()。然后,您只在第一次创建片段时才接到电话。

答案 1 :(得分:1)

onResume() - 方法总是在片段运行之前调用。检查生命周期图 - > http://docs.xamarin.com/static/guides/android/platform_features/fragments/part_1_-_creating_a_fragment/Images/fragment_lifecycle.png

相关问题