Как стать автором
Обновить

Комментарии 18

В интернете описана куча способов передачи сообщений из фрагмента в активность. К сожалению, не все из них правильные. Следующий способ правильный и один из моих любимых:

… который тоже неправильный.

При использовании такого подхода нужно будет еще добавить обнуление ссылки на mListener в onDetach(), иначе имеется вероятность отправить результат в уже остановленную Acticity.
Правильнее, имхо, все же не кешировать результат вызова getActivity(), а получать его при каждом возврате значения, проверяя на null, и т.п.
Обнуление листнера лишь добавит необходимость проверки на null. Я предпочитаю делать проверку на isAdded() при любых действиях с Activity. Это не даст совершить действия над уничтоженной активностью а также исключит случаи когда фрагмент удален или еще не добавлен.
Я использую подход с евент-басом. Активити подписывается на события в onCreate, отписывается в onStop, диалог посылает события. Полный декаплинг.
Можно и так убить
adb shell am force-stop my.package
samodum
Можно и так убить
adb shell am force-stop my.package

Можно. Но тогда не сохранится стек активностей. Мало того у force-stop есть ряд более тяжелых последствий. Например в приложение перестанут приходить броадкасты.
Я думал уже не осталось людей, которые обращают на это внимание, ан нет.
Использую в общении такие слова как активность, активити, и ничего, никто пока еще от этого не умер и все сразу понимали смысл.
Видимо мир еще не готов к «АКТИВНОСТЯМ». Исправил все «Активности» на «Activity». Думаю, так действительно будет более привычно. Хотя, странно получается, к «сервисам» и «фрагментам» все нормально относятся, но вот «активности» в русском сообществе как-то не прижились. Видимо из за большего различия в произношении.
Активность
В русском сообществе есть Сezurity — надежный страж от активности.
«Activity» переводится на русский язык как «деятельность», а не как «активность».
Названия системных компонентов андроида лучше не переводить на русский вообще. А то так и будем показывать в представлениях внутри активности данные из предоставителя содержимого и обновлять по широковещательному намерению.
О да, НАМЕРЕНИЕ, вот чего не хватает миру.
Слово «сымитировать» можно написать сто двадцатью восемью различными способами и только одним способом правильно.
Слово «сымитировать» можно написать сто двадцатью восемью различными способами и только одним способом правильно.
Какой из Ваших двух правильный?
Terminate — жестокая штука. Спасибо, теперь буду проверять и такой случай. Изначально, использовал бандлы для передачи параметров, но как-то это неудобно слишком. Выходит, что единственное решение — всегда сохранять модель, а так как сохранение будет идти на диск, то еще и в другом потоке надо делать (можно конечно использовать отложенную запись преференсов)…
А еще можно пойти в Developer Options и включить «Don't keep activities», по-русски называется «Не сохранять действия», если я не ошибаюсь. А затем просто свернуть развернуть приложение.
Ага, я когда-то пол дня потратил в анализе того, почему мои активности умирают на 5 версии андроида, а на другом телефоне с четверкой всё хорошо, пока не докопался до этой штуки, которую включил и забыл.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории