Как предотвратить утечку фрагмента ⇐ Android
-
Anonymous
Как предотвратить утечку фрагмента
У меня есть следующее действие:
класс SwitchFragAct расширяет AppCompatActivity { Фрагмент а; Фрагмент б; onClickSwitchFrags (Просмотр v) { FragmentManager mgr = getSupportFragmentManager(); Фрагмент currentFrag = mgr.findFragmentById(R.id.frag_to_swap); если (currentFrag == а) { mgr.beginTransaction().detach(a).attach(b).commit(); } иначе если (currentFrag == b) { mgr.beginTransaction().detach(b).attach(a).commit(); } } } Таким образом, канарейка утечки будет жаловаться на утечку неприсоединенного фрагмента (например, @ SwitchFragAct#a). Какова моя альтернатива, чтобы убедиться, что он не протекает? Я думаю, мне нужно использовать присоединение/отсоединение, чтобы состояние все еще сохранялось. Я думаю, единственная альтернатива — каждый раз воссоздавать фрагмент. В настоящее время в этом фрагменте нет никаких механизмов для этого, куда я могу перейти в сохраненном состоянии.
У меня есть следующее действие:
класс SwitchFragAct расширяет AppCompatActivity { Фрагмент а; Фрагмент б; onClickSwitchFrags (Просмотр v) { FragmentManager mgr = getSupportFragmentManager(); Фрагмент currentFrag = mgr.findFragmentById(R.id.frag_to_swap); если (currentFrag == а) { mgr.beginTransaction().detach(a).attach(b).commit(); } иначе если (currentFrag == b) { mgr.beginTransaction().detach(b).attach(a).commit(); } } } Таким образом, канарейка утечки будет жаловаться на утечку неприсоединенного фрагмента (например, @ SwitchFragAct#a). Какова моя альтернатива, чтобы убедиться, что он не протекает? Я думаю, мне нужно использовать присоединение/отсоединение, чтобы состояние все еще сохранялось. Я думаю, единственная альтернатива — каждый раз воссоздавать фрагмент. В настоящее время в этом фрагменте нет никаких механизмов для этого, куда я могу перейти в сохраненном состоянии.
Мобильная версия