Обнаружение простоя Android

#android

#Android

Вопрос:

У меня есть (несколько) простой вопрос об Android.

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

В любом случае, когда я запускаю свое приложение, затем я «закрываю» его, нажав кнопку «Начальный экран», затем возвращаюсь, скажем, через 20 минут, я получаю некоторые исключения с нулевым указателем из этих статических данных.

Есть ли какой-либо способ определить, что теперь мы возвращаем приложение в фокус, помимо тестирования каждого элемента данных при вызове OnFocus? Возможно, мы можем «перезапустить» приложение, когда это необходимо?

Спасибо

Ответ №1:

В рамках действия вы можете переопределить его public void onResume() , чтобы узнать, когда оно возвращается.

Что касается статических данных, вы не можете легко контролировать сборку мусора. Вы должны быть в состоянии поместить любые данные, необходимые для инициализации, в статический блок, верно? Если это невозможно, рассмотрите возможность использования singleton ; Таким образом, ничто за пределами этого класса не должно знать ничего о фактической инициализации данных.

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

1. хммм, похоже, мне следует расширить Activity, переопределить onResume и использовать этот новый класс для всех моих представлений. Неплохая идея.

2. и, насколько я могу судить, это работает прекрасно. Спасибо!