有没有办法找出后堆栈发生了什么?

时间:2015-03-12 19:31:50

标签: java android android-fragments back-stack

在我的Android活动中,我使用FragmentManager.OnBackStackChangedListener()来监听片段后端堆栈的更改。

OnBackStackChangedListener只有一种方法onBackStackChanged(),但没有传递有关更改的信息。

有没有办法收集这些信息?

具体来说,我想知道我之前添加的片段是否被后备栈更改删除了。

2 个答案:

答案 0 :(得分:2)

实现此目的的一种方法是使用FragmentManager.enableDebugLogging(true);(您可以将其放在Application的onCreate中)。通过此调试,您不仅可以查看片段的各种生命周期事件,还可以查看有关Backstack更新的信息。

@Override
public void onCreate() {
    super.onCreate();

        FragmentManager.enableDebugLogging(true);
}

答案 1 :(得分:1)

一种选择是使用popBackStack从后台堆栈手动检索信息;您可以从堆栈中弹出最新状态,也可以通过指定名称或ID来搜索特定状态。

因此,要回答您的问题,您可以创建后备堆栈的本地副本,然后在调用onBackStackChanged()时,您可以将后备堆栈的已保存副本与当前后备堆栈进行比较,以查看更改的内容。