Android onBackPress在片段中调用什么

Android onBackPress在片段中调用什么,android,fragment,onresume,onpause,Android,Fragment,Onresume,Onpause,在一个片段中,我有这样一句话: onPause(){ super.onPause(); if(flag){ getActivity.finish(); }else{ } } onResume(){ flag = true; super.onResume(); } 还有一个按钮,单击后我将此标志设置为false: Button.onClick{ flag = false; } 这个想法是: 单击按钮时,不要完成此活动。但当按下设备BackButton时,完成() 但这种逻辑是行不通的。原

在一个片段中,我有这样一句话:

onPause(){

super.onPause();
if(flag){
getActivity.finish();
}else{
}
}

onResume(){

flag = true;
super.onResume();
}
还有一个按钮,单击后我将此标志设置为false:

Button.onClick{
flag = false;
}
这个想法是:

单击按钮时,不要完成此活动。但当按下设备BackButton时,完成()

但这种逻辑是行不通的。原因是,当我按下设备的BackButton时,onPause没有被调用

这是活动中的第四个片段。因此,当我按下BackButton时,我可以看到第三个片段。我不想这样

我在API 10设备上使用此功能,但我的应用程序使用支持库v4。


谢谢。

如果您想在“back press”上关闭“activity”,请在“activity
活动”中覆盖“onBackPressed”上的
,如下所示:

public void onBackPressed() {
   Fragment fragment = getSupportFragmentManager().findFragmentByTag("yourfragment");
   if (fragment instanceOf YourFragmet) {
          finish();
          return;
   }
   super.onBackPressed();
}

如果要关闭按钮上的活动,请单击,然后可以调用

Button.onClick{
  getActivity().onBackPressed();
}


如果在片段之间转换时,调用addToBackStack()作为FragmentTransaction的一部分,则如果要关闭back press上的活动,则“后退”按钮会将您带到back stack顶部的片段,然后在活动中覆盖
on backpressed
,如下所示:

public void onBackPressed() {
   Fragment fragment = getSupportFragmentManager().findFragmentByTag("yourfragment");
   if (fragment instanceOf YourFragmet) {
          finish();
          return;
   }
   super.onBackPressed();
}

如果要关闭按钮上的活动,请单击,然后可以调用

Button.onClick{
  getActivity().onBackPressed();
}

如果在片段之间转换时,调用addToBackStack()作为FragmentTransaction的一部分,则“后退”按钮会将您带到后堆栈顶部的片段

为什么不能使用片段的OnDeach()?按下Back键时,将调用片段上的onDetach()以移除该片段

@Override
public void onDetach() {
   super.onDetach();
   if(flag){
     getActivity.finish();
   }else{
        }
}
为什么不能使用片段的OnDetch()?按下Back键时,将调用片段上的onDetach()以移除该片段

@Override
public void onDetach() {
   super.onDetach();
   if(flag){
     getActivity.finish();
   }else{
        }
}

不,我不想在按钮单击时关闭活动。我只想在BackisPressed时关闭活动我应该在onViewCreated()中使用它吗??当fragment.getView被onViewCreatedNo的view参数替换时,它在反压时不会到达此代码。是否有任何特定的块我必须使用它。比如onCreateView或其他东西;没有什么比onBackPressed更容易覆盖。可能是因为我使用的是targetRapi=15;但当按下device back时,必须在活动中正确触发片段的onPause()?onBackPressed,而不是fragmentNo。我不想在ButtonClicked上关闭活动。我只想在BackisPressed时关闭活动我应该在onViewCreated()中使用它吗??当fragment.getView被onViewCreatedNo的view参数替换时,它在反压时不会到达此代码。是否有任何特定的块我必须使用它。比如onCreateView或其他东西;没有什么比onBackPressed更容易覆盖。可能是因为我使用的是targetRapi=15;但当按下device back时,必须在活动中正确触发片段的onPause()?onBackPressed,而不是调用
onDetach()时的片段?在Backback弹出窗口??是的,当您按Back键时,前景片段将被分离,并显示先前连接的片段。何时调用
onDetach()
?在Backback弹出窗口??是,当您按下Back键时,前景碎片将被分离,之前连接的碎片将被显示。