У меня вопрос относительно языка Java: в андроиде
я попытался изменить System.property X внутри процесса A, а затем активировал процесс B
(я подумал, что, возможно, снова инициализирует все System.properties)
(процесс B не видел измененного System.property X, как ожидалось),
затем я возобновил первый процесс и увидел, что измененный System.property все еще существует.
Я знаю, что класс System не может быть создан. поскольку это так,
Я думал, что он будет разделяться между всеми процессами.
но это не так.
Я понимаю, почему мы хотим, чтобы это произошло, но как это может быть, если System class не создается? какой механизм в Java вызывает такое поведение?
Спасибо за помощь
какой механизм в Java вызывает такое поведение?
Хотя байт-код класса System
используется совместно с процессами Dalvik VM, любые одноэлементные данные, которые могут храниться в классе System
(или любом другом Java-классе ОС Android), не используются совместно с процессами Dalvik VM. Скорее, такие объекты создаются на локальном процессе "куча", не отличающаяся от любых других объектов.
Как вы, наверное, знаете, Android поддерживает вашу деятельность, пока не решит, что ей нужны ресурсы для чего-то другого. Поэтому, когда вы "возобновили первый процесс и увидели, что измененный System.property
все еще существует", вы, возможно, получили бы то же самое состояние, что и вы, как если бы вы переключали окна на свой рабочий стол.
System
нельзя создать, потому что Java определяет ее таким образом, а не из-за какого-либо совместного использования.