在我的Android活动中,我使用FragmentManager.OnBackStackChangedListener()
来监听片段后端堆栈的更改。
OnBackStackChangedListener
只有一种方法onBackStackChanged()
,但没有传递有关更改的信息。
有没有办法收集这些信息?
具体来说,我想知道我之前添加的片段是否被后备栈更改删除了。
答案 0 :(得分:2)
实现此目的的一种方法是使用FragmentManager.enableDebugLogging(true);
(您可以将其放在Application
的onCreate中)。通过此调试,您不仅可以查看片段的各种生命周期事件,还可以查看有关Backstack更新的信息。
@Override
public void onCreate() {
super.onCreate();
FragmentManager.enableDebugLogging(true);
}
答案 1 :(得分:1)
一种选择是使用popBackStack
从后台堆栈手动检索信息;您可以从堆栈中弹出最新状态,也可以通过指定名称或ID来搜索特定状态。
因此,要回答您的问题,您可以创建后备堆栈的本地副本,然后在调用onBackStackChanged()
时,您可以将后备堆栈的已保存副本与当前后备堆栈进行比较,以查看更改的内容。