1

我需要检测在 Fragment 中按下的后退按钮。

我的应用程序开始在片段中下载数据,所以我需要在按下后退按钮时停止下载(也做一些操作),如果按下主页按钮则不需要。所以我不能使用 onPause(),因为在这两种情况下都会调用它。

我使用 addToBackStack(null),但我需要在当前片段中执行一些操作(停止下载和),然后返回到上一个片段。

getSupportFragmentManager()
   .beginTransaction()
   .replace(R.id.content_frame, fragment)
   .addToBackStack(null)
   .commit();   
4

2 回答 2

0

查看此链接
在您的活动中,您可以覆盖 onBackPressed() et 然后调用 popBackStack

于 2013-11-06T12:45:47.637 回答
0

当你完成了你想要在片段中做的事情时,你可以使用类似这样的东西来删除当前片段。如果最后一个片段已添加到堆栈中(如您所述),则删除当前片段将自动显示最后一个片段。

this.getActivity().getSupportFragmentManager().beginTransaction()
            .remove(this).commit();

或者

this.getActivity().getFragmentManager().beginTransaction()
            .remove(this).commit();
于 2013-11-06T12:37:12.713 回答