为什么在调用fragmentmanager.popbackstack之后碎片没有被销毁

问题描述

几个片段之间的导航如下:

    var fragmentTransaction = MainActivity.SupportFragmentManager.BeginTransaction();
    fragmentTransaction.Replace(Resource.Id.container,fragment,tag);
    if (isAddToBackStack)
    {
        fragmentTransaction.AddToBackStack(tag);
    }
    fragmentTransaction.Commit();

浏览片段A-> B-> C -pop-> B -pop-> A之后 片段B和C仍在内存中(由探查器指示),尽管对这些片段调用了OnDestroy()。

调用OnDestroy()之后,片段是否在内存中正常吗?我知道是被替换的事务,但是曾期望在销毁该片段时调用OnDestroy(因此不会将任何活动对象保留在内存中。

是否有一种方法可以迫使片段在弹出时被破坏?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)