在popBackStack之后调用了哪个方法?

8 浏览
0 Comments

在popBackStack之后调用了哪个方法?

我有一个活动,其中我调用了三个片段 - 每个片段依赖于彼此:

A(活动) -> f1 (片段一,标题{是|应该是}:列表) -> f2 (片段二,标题{是|应该是}:概览) -> f3 (片段三,标题{是|应该是}:详情)

目前,我使用以下方法调用来返回上一步:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            FragmentManager fragmentManager = getSupportFragmentManager();
            if (fragmentManager.getBackStackEntryCount()>0){
                fragmentManager.popBackStack();
            }
    }
}

这个方法运行良好。

我在每个片段中重写ActionBar标题,如下所示:

ActionBar bar = getSherlockActivity().getSupportActionBar();
bar.setTitle(R.string.title_f3);

在向前导航时(如上所示),这完美地工作,但在向后导航时,ActionBar的标题没有更新:

f3 (标题{是|应该是}:详情) -> f2 (标题{是}:详情,{应该是}:概览) -> f1 (标题{是}:详情,{应该是}:列表)

显然,在片段弹出回退栈之后,我可以再次更新它。但是,我的调试器从未停在任何我期望调用的方法中,如onResume()。

那么,在弹出回退栈后,实际上是否有任何方法被调用在先前的片段中呢?

0