Поля
static
присоединяются к экземпляру Class
в целом, который, в свою очередь, присоединяется к ClassLoader
, который загружал класс. the_instance
будет выгружен, когда весь ClassLoader
будет восстановлен. Я на 90% уверен, что это происходит, когда Android уничтожает приложение (не когда оно уходит в фоновый режим или приостанавливается, но полностью выключается).
Итак, думайте о том, что вы живете, пока работает ваше приложение. Синглтон хорошая идея? У людей разные взгляды. Я думаю, что это нормально, когда используется соответствующим образом, сам. Я не думаю, что ответ сильно меняется на Android. Использование памяти не является проблемой само по себе; если вам нужно загрузить кучу вещей в память, это либо проблема, либо нет, независимо от того, инкапсулированы ли вы данные в Singleton.