Почему фрагменты не уничтожаются после вызова 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 будет вызываться при уничтожении фрагмента (и, следовательно, никаких живых объектов в памяти не будет.
Есть ли способ заставить фрагменты разрушаться, когда они лопаются?