点击设备后退会调用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 它正在被删除。
我在另一个片段 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 它正在被删除。