Java 针对活动和片段的不同OnBackpress

Java 针对活动和片段的不同OnBackpress,java,android,Java,Android,我的应用程序流程是: 活动A->活动B(此活动具有单击打开片段的按钮) 我希望,当我在活动B的片段上时,在反压时,流应该是活动B,当我在活动B上时,然后在反压时,应用程序应该退出 我目前正在使用: @Override public void onBackPressed() { if(getFragmentManager().getBackStackEntryCount() > 0) { getFragmentManager().popBackStackImmedi

我的应用程序流程是:

活动A->活动B(此活动具有单击打开片段的按钮)

我希望,当我在活动B的片段上时,在反压时,流应该是活动B,当我在活动B上时,然后在反压时,应用程序应该退出

我目前正在使用:

@Override
public void onBackPressed() {

    if(getFragmentManager().getBackStackEntryCount() > 0) {
        getFragmentManager().popBackStackImmediate();
    }

    else {
        super.onBackPressed();
    }
}
当按下活动B的片段时,它工作正常,但当从活动B按下时,它将进入活动A(出于某种原因,活动A中也没有显示任何内容)

编辑

我调用片段的代码:

faqsBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mLoginSubmit.setVisibility(View.GONE);
            Bundle b1 = new Bundle();
            b1.putString("ComingFrom","Login");
            android.support.v4.app.Fragment faqsFragment = new fragment11Faqs();
            faqsFragment.setArguments(b1);
            android.support.v4.app.FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
            transaction.replace(R.id.framelayoutfaqs,faqsFragment);
            transaction.addToBackStack(faqsFragment.toString());
            transaction.commit();
        }
    });

ActivityA

像这样

Intent intent=new Intent(ActivityA.this,ActivityB.class);
startActivity(intent);
finish();
您可以在活动b中为backback编写代码,只需在
super.onBackPressed()之后添加
finish()

下面是如何将片段添加到backstack

 Fragment cameraEditing = new Editing(); FragmentManager
 fragmentManager = getFragmentManager(); FragmentTransaction 
fragmentTransaction = fragmentManager.beginTransaction(); 
fragmentTransaction.replace(R.id.cameraLayout, 
cameraEditing,"cameraEditing"); 
fragmentTransaction.addToBackStack("cameraEditing");
 fragmentTransaction.commit();

即使在我按back键退出应用程序时,也可能会重复此操作。是否要将片段添加到back stack?您能告诉我如何操作吗?当您编写添加或替换片段的代码时,您只需添加行-addtobackstack(),然后它会将其添加到backstack,您可以通过如何将片段添加到backstack来查看Google上的代码,然后此代码将正常工作。这是错误的,不要传递null,在那里传递片段名称,如果您看到如何将片段添加到backstack会更好
 Fragment cameraEditing = new Editing(); FragmentManager
 fragmentManager = getFragmentManager(); FragmentTransaction 
fragmentTransaction = fragmentManager.beginTransaction(); 
fragmentTransaction.replace(R.id.cameraLayout, 
cameraEditing,"cameraEditing"); 
fragmentTransaction.addToBackStack("cameraEditing");
 fragmentTransaction.commit();