По-прежнему ли глобальные переменные вызывают NPE, если у меня только одно действие? - PullRequest
1 голос
/ 26 мая 2020

Я прочитал много статей о том, насколько плохи глобальные переменные в классе приложения или в синглтонах. Самая большая проблема для меня заключалась в том, что это вызывает исключение NullPointerException, когда приложение убивает система, а пользователь перезапускает его. Приложение перезапускается с Activity, в которой пользователь был раньше, а не с первой Activity приложения. Глобальные переменные не остаются в памяти навсегда, поэтому запуск последнего Activity вызывает NPE (если вы не проверяете значение null вручную).

Однако во всех этих примерах используются приложения с несколькими действиями. Эта проблема все еще существует с приложениями с одним действием?

Я попытался реплицировать исключение NullPointerException в своем приложении, но на всех моих устройствах приложение перезапускается с первым фрагментом, и поэтому приложение не работает с sh.

1 Ответ

0 голосов
/ 30 июня 2020

Да, это так. Причина, по которой оно не взломало sh мое приложение, заключалась в том, что у меня не было фрагмента, в котором я обращался к данным синглтона без его предварительного создания. Я исправил это, заменив синглтон на базу данных комнат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...