Android 未为片段调用onDetach?

Android 未为片段调用onDetach?,android,android-activity,android-fragments,activity-lifecycle,fragment-lifecycle,Android,Android Activity,Android Fragments,Activity Lifecycle,Fragment Lifecycle,我编写了一个代码来启动活动A到活动B。活动A和B都有片段实现 场景:如果活动A经常启动包含片段的活动B,那么大多数情况下它会错过Fragment.onDetach..I使用日志检查,通常它会给我以下重写方法日志: 奥纳塔克 列表项 OnCreatView 打开视图创建,然后按设备后退按钮 暂停 顶上 onDestroyView 附着器 现在,我从活动B按下设备后退按钮,再次启动活动A,然后启动活动B,并频繁重复相同的序列,然后按照以下顺序记录序列得到更改: 奥纳塔克 列表项 OnCreatVie

我编写了一个代码来启动活动A到活动B。活动A和B都有片段实现

场景:如果活动A经常启动包含片段的活动B,那么大多数情况下它会错过Fragment.onDetach..I使用日志检查,通常它会给我以下重写方法日志:

  • 奥纳塔克
  • 列表项
  • OnCreatView
  • 打开视图创建,然后按设备后退按钮
  • 暂停
  • 顶上
  • onDestroyView
  • 附着器
  • 现在,我从活动B按下设备后退按钮,再次启动活动A,然后启动活动B,并频繁重复相同的序列,然后按照以下顺序记录序列得到更改:

  • 奥纳塔克
  • 列表项
  • OnCreatView
  • 打开视图创建,然后按设备后退按钮
  • 暂停
  • 顶上
  • onDestroyView并用重复
  • 不带沉降器的沉降器
  • 有时,它在onPause之后也会重复相同的行为

    我正在使用

    getSupportFragmentManager().beginTransaction()
            .replace(R.id.fragment_container, fragment).addToBackStack(null).commitAllowingStateLoss(); to add fragment in Activity.
    

    有什么我遗漏的吗……有什么建议吗?

    一个碎片被销毁后被分离。您所做的是在销毁视图后直接删除。 记住,销毁和销毁视图在片段中是两个不同的东西。
    因此,请尝试onDestroyView、onDestroy和onDetach。

    所有片段事务都是异步的,也许fragmentmanager会优化该行为,而不是分离片段,然后立即重新连接它?@pskink再次重新启动同一片段。任何建议!重新启动?对不起,我不明白it@dominik4142可能是的,但如果要调用显式OnDetch调用呢?@pskink,因为活动共享一些公共数据,并且一次只能由一个客户端更新这些数据…但是这里为同一个类创建了两个实例。当片段被销毁时,而当它停止连接到任何活动时,不会调用OnDetch!片段可以(也应该)保留下来供以后使用,由片段管理器存储。