#android
#Android
Вопрос:
это просто вопрос общего характера — из любопытства…
В Android, когда activity и service используют один и тот же статический класс (т. Е. singleton), получает ли служба в конечном итоге свою собственную «версию» класса?
Например, я помещаю все свои глобальные константы в статический класс. Создаются ли эти ячейки памяти один раз для действий и снова для отдельных процессов, таких как служба?
Ответ №1:
Нет. Для ваших действий и служб создается единый процесс с единым унифицированным пространством памяти, поэтому у вашего статического класса будет только один экземпляр. Обратите внимание, что это поведение по умолчанию, и есть способы, например, запустить вашу службу в другом процессе. Тогда все ставки отменяются, и статические переменные почти наверняка не лучший путь для вашей реализации.
Комментарии:
1. верно, я читал, что сервис может находиться в отдельном процессе — этот случай особенно заинтересовал меня.
2. Ключевой момент: может быть в отдельном процессе. Но вы должны явно настроить его в манифесте, чтобы включить его.
3. давайте посмотрим, каков ответ … thinkandroid.wordpress.com/2010/01/29 /…
4. jwei512 в этом блоге WordPress, по-видимому, не активен, поэтому я пока отмечу это как решенное. Обратите внимание, что я поместил кучу констант в статический класс, и служба в отдельном процессе смогла получить доступ к этим константам.