点击设备后退会调用Fragment的什么事件?

What event of Fragment will be called when I click device back?

我在另一个片段 A 之上添加一个片段 B,如下所示:

fragmentManager.beginTransaction().add(R.id.frame_container, fragment).addToBackStack("post_details").commit();

问题是,当我在 B 上再次点击设备时,我需要在 A 中有一个锚点。 在这种情况下将调用哪个生命周期方法?

这取决于您使用的事务类型以及您是否将片段添加到返回堆栈。让我们假设您将 B 添加到后台堆栈并且您的 Activity 没有经历任何生命周期事件:

  • 添加 A -> 添加 B + addToBackstack -> popBackStack

    在这种情况下,A 将不会经历任何生命周期事件。

  • 添加 A -> 替换为 B + addToBackStack -> popBackStack

    此时A会经过onCreateView->onActivityCreated等等

关于你的另一个问题,A怎么知道B是否被删除了?有很多方法,但是一个简单的方法是 B 在它自己的 onPause 中检查 Fragment.isRemoving。然后,B 可以通知托管 Activity 甚至片段 A 它正在被删除。