Комментарии 18
В интернете описана куча способов передачи сообщений из фрагмента в активность. К сожалению, не все из них правильные. Следующий способ правильный и один из моих любимых:
… который тоже неправильный.
При использовании такого подхода нужно будет еще добавить обнуление ссылки на mListener в onDetach(), иначе имеется вероятность отправить результат в уже остановленную Acticity.
Правильнее, имхо, все же не кешировать результат вызова getActivity(), а получать его при каждом возврате значения, проверяя на null, и т.п.
Обнуление листнера лишь добавит необходимость проверки на null. Я предпочитаю делать проверку на isAdded() при любых действиях с Activity. Это не даст совершить действия над уничтоженной активностью а также исключит случаи когда фрагмент удален или еще не добавлен.
Я использую подход с евент-басом. Активити подписывается на события в onCreate, отписывается в onStop, диалог посылает события. Полный декаплинг.
Можно и так убить
adb shell am force-stop my.package
adb shell am force-stop my.package
samodum
Можно. Но тогда не сохранится стек активностей. Мало того у force-stop есть ряд более тяжелых последствий. Например в приложение перестанут приходить броадкасты.
Можно и так убить
adb shell am force-stop my.package
Можно. Но тогда не сохранится стек активностей. Мало того у force-stop есть ряд более тяжелых последствий. Например в приложение перестанут приходить броадкасты.
АКТИВНОСТЬ
Я думал уже не осталось людей, которые обращают на это внимание, ан нет.
Использую в общении такие слова как активность, активити, и ничего, никто пока еще от этого не умер и все сразу понимали смысл.
Использую в общении такие слова как активность, активити, и ничего, никто пока еще от этого не умер и все сразу понимали смысл.
Видимо мир еще не готов к «АКТИВНОСТЯМ». Исправил все «Активности» на «Activity». Думаю, так действительно будет более привычно. Хотя, странно получается, к «сервисам» и «фрагментам» все нормально относятся, но вот «активности» в русском сообществе как-то не прижились. Видимо из за большего различия в произношении.
Слово «сымитировать» можно написать сто двадцатью восемью различными способами и только одним способом правильно.
Слово «сымитировать» можно написать сто двадцатью восемью различными способами и только одним способом правильно.
Terminate — жестокая штука. Спасибо, теперь буду проверять и такой случай. Изначально, использовал бандлы для передачи параметров, но как-то это неудобно слишком. Выходит, что единственное решение — всегда сохранять модель, а так как сохранение будет идти на диск, то еще и в другом потоке надо делать (можно конечно использовать отложенную запись преференсов)…
А еще можно пойти в Developer Options и включить «Don't keep activities», по-русски называется «Не сохранять действия», если я не ошибаюсь. А затем просто свернуть развернуть приложение.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Android Process: Я тебя породил, я тебя и …