#android
#Android
Вопрос:
У меня есть (несколько) простой вопрос об Android.
У меня есть несколько классов, которые содержат некоторые статические данные, доступные через статические методы. Я делаю это, чтобы иметь доступ к своим данным везде, где мне нужно, без необходимости передавать данные любым способом.
В любом случае, когда я запускаю свое приложение, затем я «закрываю» его, нажав кнопку «Начальный экран», затем возвращаюсь, скажем, через 20 минут, я получаю некоторые исключения с нулевым указателем из этих статических данных.
Есть ли какой-либо способ определить, что теперь мы возвращаем приложение в фокус, помимо тестирования каждого элемента данных при вызове OnFocus? Возможно, мы можем «перезапустить» приложение, когда это необходимо?
Спасибо
Ответ №1:
В рамках действия вы можете переопределить его public void onResume()
, чтобы узнать, когда оно возвращается.
Что касается статических данных, вы не можете легко контролировать сборку мусора. Вы должны быть в состоянии поместить любые данные, необходимые для инициализации, в статический блок, верно? Если это невозможно, рассмотрите возможность использования singleton ; Таким образом, ничто за пределами этого класса не должно знать ничего о фактической инициализации данных.
Комментарии:
1. хммм, похоже, мне следует расширить Activity, переопределить onResume и использовать этот новый класс для всех моих представлений. Неплохая идея.
2. и, насколько я могу судить, это работает прекрасно. Спасибо!