在Android中,我有一项服务(通过标准startService
调用启动)。该应用程序引用库JAR文件。第一个Activity将静态布尔字段设置为“true”,然后在服务过程中,我看到该值也为真。
这怎么可能?
服务在设置值后启动 - 可能是DVM在创建服务进程时复制静态,还是在进程之间共享static
个字段?我的印象是每个进程都启动了一个单独的VM。
答案 0 :(得分:1)
假设您的活动和服务位于同一个应用程序中,它们在同一进程下的两个独立线程中运行。因此,您应该期望它们共享您引用的静态变量的相同实例。
答案 1 :(得分:0)
抱歉,我在欺骗自己。虽然服务是在一个单独的过程中(在清单中使用android:process
属性),但我不小心调用了正在执行此操作的代码。
- 不是一个真正的问题 -