【发布时间】:2015-07-03 21:57:25
【问题描述】:
我已经研究了几天,还没有找到可行的解决方案。有很多可用的信息,但由于我对 Android 缺乏经验,我无法获得任何可行的建议。
我有一个 Activity,上面有 3 个 Fragment 堆栈,所有这些都使用 FragmentManager Transactions 呈现并添加到后台堆栈。当第三个 Fragment 处于活动状态时,我需要拦截 onBackPressed() 方法并在 Fragment 被销毁之前执行一些额外的操作。
我尝试使用回调和接口在活动中捕获 onBackPressed() 并将其发送到第三个片段,但没有成功。
对于 Activity 的 onBackPressed() 方法,在堆栈中深入观察 Fragment 的正确方法是什么。
如果不清楚,请告诉我。
感谢您的帮助。
【问题讨论】:
-
onBackPressed() 有必要吗?或者你只是想在片段被破坏时做点什么?
-
也许覆盖
onPause会更好? -
堆栈上的最后 2 个片段需要同时弹出,或者一个紧随其后,我通过调用 popBackStack() 2 次使用内置的取消按钮完成此操作(可能不是最好的方法......)所以我需要做同样的 onBackPressed() 否则只有 1 个 Fragment 被破坏。
-
您阅读网页developer.android.com/training/implementing-navigation/… 了吗?我认为此时,您应该发布相关代码以供我们查看任何可能的问题。
标签: android android-fragments interface callback onbackpressed