Хотя обычно не рекомендуется использовать класс, расширяющий Application
, каковы альтернативы для хранения переменных, к которым требуется глобальный доступ через потоки?
SharedPreferences не могут быть выбраны, поскольку его физическое хранилище и частый доступ к нему создают проблемы с производительностью
Пример: приложение для покупок, которое содержит значение int в классе Application для последнего просмотренного продукта. Эта переменная используется в методе onBindViewHolder в программе повторного просмотра, поэтому к ней нельзя получить доступ с помощью SharedPreferences, как в случае зависания экрана при прокрутке
Единственный способ, который я знаю на данный момент, - это передать его в параметре конструктора, который является достойным, потому что это может привести к очень странным параметрам конструктора, или намерением, которое не всегда является жизнеспособным решением (привет адаптеры)