FragmentManager替换片段而不为旧片段调用onPause()onDestroy()

Sam*_*awy 5 android android-fragments pull-to-refresh fragmentmanager

在我的应用程序中,我有一个左侧菜单控制我的Fragment一个FragmentView中的事务MainActivity.在FragmentView我之上,PullToRefresh新GMAIL中使用的新组件仅在一个中刷新Fragment.

在此输入图像描述

如果我Fragment用另一个替换它,我想停止刷新它.

getSupportFragmentManager().beginTransaction()
            .replace(R.id.fragment_container, new pullToRefreshFragment())
            .commit();
Run Code Online (Sandbox Code Playgroud)

我预计,FragmentManager固守传统FragmentLifeCycle然后,我决定停止PullToRefresh在部件onPause,onDestroy,onStoponDetach()方法.不幸的是,那些方法从来没有被称为替换Fragment.如果我从左侧菜单中选择了相同的片段,它们只会被替换.

@Override
public void onDetach() {
    if(mPullToRefreshLayout.isRefreshing()){
        mPullToRefreshLayout.setRefreshComplete();
    }
    super.onDetach();
}
Run Code Online (Sandbox Code Playgroud)

这意味着,FragmentManager缓存片段并不会破坏它们,除非我试图用同一类型的另一个片段替换片段.

我的问题是,在使用FragmentManager?替换或添加新片段时,片段lifeCycle是什么?

我应该在哪里停止我的PullToRerfesh组件,如果我想在用另一个片段替换片段时停止它?