Есть ли причина не использовать класс Application для обмена переменными через действия?Использование класса Application для глобальных переменных
Например, дескриптор DB или один HttpClient.
Есть ли причина не использовать класс Application для обмена переменными через действия?Использование класса Application для глобальных переменных
Например, дескриптор DB или один HttpClient.
Согласно официальной документации «вы можете использовать ее для поддержания состояния глобального приложения». ИМО, вы не хотели бы удерживать слишком много тяжелых предметов во всем мире. Конечно, «слишком много» слишком нечеткое :) Существуют и другие способы совместного использования (постоянные) данных: «Настройки», «База данных», «Файлы». Возможно, вам захочется проверить, подходит ли какая-либо из них для вашей проблемы.
Другое, что вам нужно понять при использовании объекта Application - это его жизненный цикл. К сожалению, обсуждение этого вопроса может быть очень субъективным, но, к счастью, например, обсуждение has already been done
Удачи!
Объект Application
предназначен для поддержания приложения состояние, а не ресурсы. Лично я бы инициировал соединения БД или HTTP-клиенты в каждом действии, который им нужен, а не глобально в объекте Application
.
Я не думаю, что для создания таких объектов огромные накладные расходы, а это означает, что когда действие остановлено, эти ресурсы могут быть освобождены. Если вы создадите их в объекте Application, они будут всегда создаваться, используя память, даже если текущая активность не нуждается в них.
+1 для ссылки на обсуждение объекта приложения. Очень полезно. –