JAR中的静态变量在进程之间共享?

时间:2013-06-14 21:29:03

标签: java android service static-members

在Android中,我有一项服务(通过标准startService调用启动)。该应用程序引用库JAR文件。第一个Activity将静态布尔字段设置为“true”,然后在服务过程中,我看到该值也为真。

这怎么可能?

服务在设置值后启动 - 可能是DVM在创建服务进程时复制静态,还是在进程之间共享static个字段?我的印象是每个进程都启动了一个单独的VM。

2 个答案:

答案 0 :(得分:1)

假设您的活动和服务位于同一个应用程序中,它们在同一进程下的两个独立线程中运行。因此,您应该期望它们共享您引用的静态变量的相同实例。

答案 1 :(得分:0)

抱歉,我在欺骗自己。虽然服务是在一个单独的过程中(在清单中使用android:process属性),但我不小心调用了正在执行此操作的代码。

- 不是一个真正的问题 -