Java System Class是否在进程之间共享?

时间:2012-01-14 22:00:55

标签: java android

我对Java语言有疑问:在android

我尝试在进程A中更改System.property X,然后激活进程B

(我想也许它正在重新初始化所有的System.properties)

(进程B未按预期看到更改的System.property X),

然后我恢复了第一个进程,看到已更改的System.property仍然存在。

我知道System类无法实例化。既然如此,

我认为它将在所有流程中共享。

然而事实并非如此。

我理解为什么我们希望这种情况发生,但是如果System类没有实例化,怎么会这样呢? Java中的哪种机制会导致这种行为?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

  

Java中的哪种机制会导致这种行为?

虽然System字节码在Dalvik VM进程之间共享,但System类可能持有的任何单个数据(或Dalvik VM进程之间不共享任何其他Android OS Java类。相反,这些对象在本地进程的堆上实例化,与任何其他对象没有区别。

答案 1 :(得分:0)

正如您可能知道的那样,Android会保留您的活动,直到它决定需要其他资源。因此当你“恢复第一个进程并看到更改后的System.property仍然存在”时,您可能已经获得了您离开的状态,就好像您正在切换窗口一样你的桌面。