使用Fragment backstack查询

时间:2015-05-14 11:33:52

标签: android android-fragments fragment-backstack

说我有2个片段:A和B

片段A位于顶部。现在,我添加片段B,将A保持在后台。

现在按下后退按钮时,B被移除,A位于顶部。

A中是否有任何回调方法在此时被调用?

注意 :onResume与活动紧密绑定,因此不会被调用。只有在调用activity的onResume()时才会调用片段的onResume()。

3 个答案:

答案 0 :(得分:1)

很抱歉,但是没有回调,因为popToBackStack仅在替换事务而不是添加时才重新创建片段。

答案 1 :(得分:0)

您可能希望将OnBackStackChangedListener添加到fragment manager并监控BackStackEntryCount

getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() {    
  public void onBackStackChanged() {
      Log.i(TAG, "back stack changed ");
      int backCount = getSupportFragmentManager().getBackStackEntryCount();

      }
    }
});

获得此触发器后,您可以按照本文Deliver a Message to a Fragment中的说明将activity传递给fragment A,或者Observer中可能有Fragment在主Observable

中观察Activity

答案 2 :(得分:0)

再次显示片段时调用onViewStateRestored()。