Java 进程之间共享JAR中的静态变量?
在安卓系统中,我有一个服务(通过标准Java 进程之间共享JAR中的静态变量?,java,android,service,static-members,Java,Android,Service,Static Members,在安卓系统中,我有一个服务(通过标准startServicecall启动)。应用程序正在引用库JAR文件。第一个活动将一个静态布尔字段设置为“true”,然后在服务过程中,我看到这个值也是true 这怎么可能 设置该值后,服务将启动——可能是DVM在创建服务进程时复制静态状态,还是进程之间共享了static字段?我的印象是,每个进程都启动了一个单独的VM。假设您的活动和服务在同一个应用程序中,它们在同一进程下的两个单独线程中运行。因此,您应该期望它们共享您正在引用的静态变量的相同实例。对不起,我
startService
call启动)。应用程序正在引用库JAR文件。第一个活动将一个静态布尔字段设置为“true”,然后在服务过程中,我看到这个值也是true
这怎么可能
设置该值后,服务将启动——可能是DVM在创建服务进程时复制静态状态,还是进程之间共享了
static
字段?我的印象是,每个进程都启动了一个单独的VM。假设您的活动和服务在同一个应用程序中,它们在同一进程下的两个单独线程中运行。因此,您应该期望它们共享您正在引用的静态变量的相同实例。对不起,我在欺骗自己。虽然该服务位于一个单独的进程中(使用清单中的android:process
属性),但我无意中调用了执行此操作的代码
-这不是一个真正的问题-是的,你是对的。但是在我的回答中,我发现我在欺骗自己,即使使用
android:process
将活动和服务分离到不同的进程