1

假设我有 2 个片段:A 和 B

片段 A 在顶部。现在,我添加片段 B,将 A 保留在后台堆栈中。

现在当按下后退按钮时,B 被移除并且 A 出现在顶部。

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

注意:onResume 与活动密切相关,因此不会被调用。只有在调用活动的 onResume() 时才会调用 Fragment 的 onResume()。

4

3 回答 3

1

抱歉,没有回调,因为 popToBackStack 仅在替换事务而不是添加的情况下才会重新创建片段。

于 2015-05-14T11:39:59.233 回答
1

您可能希望将OnBackStackChangedListener添加到您的fragment manager和监视器BackStackEntryCount

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

      }
    }
});

获得此触发器后,您可以按照本文所述将消息传递activityfragment AObserverFragmentObservableActivity

于 2015-05-14T12:47:46.863 回答
0

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

于 2015-08-13T10:56:08.127 回答