У меня есть класс, который расширяет приложение в приложении Android tabHost. В классе App я размещал методы и переменные, которые в противном случае мне нужно было бы воссоздать в каждом классе. Один метод считывает из БД и сохраняет результаты в ArrayList (имя, фамилия, например). Вместо повторного чтения этой базы данных и повторного создания кода для каждого вида табуляции, для которого требуется информация, я закрепил метод и ArrayList в классе, расширяющем Application (myAppClass). Таким образом, установив mAC = (myAppClass) getApplicationContext()
из любого вида табуляции в onCreate(), я могу ссылаться на все методы get ..() и set ..() в myAppClass.Статические методы против расширения класса android.app.Application?
Мой первоначальный план состоял в том, чтобы использовать общий класс со статическими методами и переменными, но я прочитал много «не делаю этого» потоков, поэтому решил пойти по маршруту приложения. Теперь я столкнулся с ситуацией, когда я пытаюсь использовать myAppClass в библиотеке проектов, но получаю ошибки в отношении android.app.Application cannot be cast to...
. Если я изменю myAppClass на статические методы/переменные (и не распространяю приложение), все будет работать, но это предполагается быть большим нет-нет. Есть ли другой способ сделать это? Не уверен, что Android передаст все по ссылке, но может ли я лучше реализовать все приложение, передав огромные (тысячи объектов/членов) ArrayLists обратно и вперед между методами/классами?
Существует только один экземпляр приложения. Не нужно использовать геттер и сеттер. Просто используйте статические методы/переменные в вашем подклассовом приложении и используйте их таким образом: MyApplication.myMethod() ... –