静态变量不';t修改javaandroid

静态变量不';t修改javaandroid,java,android,static,Java,Android,Static,我有两个广播接收器和一个简单的类 -简单类有1个静态变量 -从broadcastReceiver1设置静态变量simpleClas.time时,varibale设置为正确的值 -但是,当您尝试从broadcastReceiver2访问simpleClass.time时,静态变量始终保持不变,它保留在init值中。这怎么可能? 最后是一个静态文件 class simpleClass{ public static long time = 0; } class broadCastReceiver1

我有两个广播接收器和一个简单的类 -简单类有1个静态变量 -从broadcastReceiver1设置静态变量simpleClas.time时,varibale设置为正确的值 -但是,当您尝试从broadcastReceiver2访问simpleClass.time时,静态变量始终保持不变,它保留在init值中。这怎么可能? 最后是一个静态文件

class simpleClass{
public static long time = 0;
}

class broadCastReceiver1 extends BroadcastReceiver{
@Override
    public onReceive(){

     //do some stuff and do an update of time variable
      simpleClass.time = System.currentTimeMillis()/1000;

    }
}

class broadCastReceiver2 extends BroadcastReceiver{
@Override
    public onReceive(){

     //do some stuff and only Read the variable time that was previously modified by broadCastReceiver1 and print the reading

     System.out.println("new Value of time = " + simpleClass.time);
    }
}
假设事件顺序为: 破产管理人1 破产管理人2

时间值一直读取到初始值0; 对于broadCastReceiver2,变量始终为值0,但在simpleClass类中,时间变量被更新!!! 您可以在simpleClass中使用variable time的新值执行其他操作

不知何故,broadCastReceiver2只看到simpleClass.time的初始值。
怎么会?有人能解释一下吗?

默认情况下,
broadCastReceivers
在一个新进程上运行,因此它们不能共享相同的数据

您需要通过向广播接收器定义添加
android:process=“string”
来更改清单定义,使其在同一进程上运行