Java 在BroadcastReceiver中,静态数组总是用零填充
我想从BroadcastReceiver中的一些静态数组中获取值。问题是,它在BroadcastReceiver中总是用零填充,而在应用程序的其他任何地方都没有。在MainActivity内部,我创建了一个testArray方法,该方法还将相同的数组显示到logcat中,并且值不同 AlarmReceiver.java testArray方法-MainActivity.java代码的一部分 Data.javaJava 在BroadcastReceiver中,静态数组总是用零填充,java,android,arrays,broadcastreceiver,static-array,Java,Android,Arrays,Broadcastreceiver,Static Array,我想从BroadcastReceiver中的一些静态数组中获取值。问题是,它在BroadcastReceiver中总是用零填充,而在应用程序的其他任何地方都没有。在MainActivity内部,我创建了一个testArray方法,该方法还将相同的数组显示到logcat中,并且值不同 AlarmReceiver.java testArray方法-MainActivity.java代码的一部分 Data.java 造成这种结果的原因是什么?我不明白为什么静态数组包含不同的值?如何在Broadcast
造成这种结果的原因是什么?我不明白为什么静态数组包含不同的值?如何在BroadcastReceiver中获取静态数组的正确值?您如何注册此接收器?如果它作为元素存在于清单中,那么该元素上是否有android:process属性?另外,请记住,您的进程可能会在任何时候终止-仅使用静态数据成员作为缓存,数据可以延迟初始化或以其他方式再次获取。请发布您的AndroidManifest.xml,您可能正在Receiver中使用process属性。我的AndroidManifest.xml文件中有以下一行:由于BroadcastReceiver的manifest声明中有android:process条目,它运行在与您的活动不同的进程中。这就是为什么您看到的行为您看到的是BroadcastReceiver运行的进程从未初始化过数据。从BroadcastReceiver的清单中删除android:process说明符。
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context k1, Intent k2) {
// TODO Auto-generated method stub
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
for (int i=0; i<24; i++) {
Log.d("Receiver " + Integer.toString(i), Double.toString(Data.mean_temp_day[i]));
}
}
}
01-17 22:03:02.007 10911-10911/com.example.nimboo:remote D/Receiver 0﹕ 0.0
01-17 22:03:02.007 10911-10911/com.example.nimboo:remote D/Receiver 1﹕ 0.0
01-17 22:03:02.007 10911-10911/com.example.nimboo:remote D/Receiver 2﹕ 0.0
01-17 22:03:02.007 10911-10911/com.example.nimboo:remote D/Receiver 3﹕ 0.0
01-17 22:03:02.007 10911-10911/com.example.nimboo:remote D/Receiver 4﹕ 0.0
01-17 22:03:02.007 10911-10911/com.example.nimboo:remote D/Receiver 5﹕ 0.0
01-17 22:03:02.007 10911-10911/com.example.nimboo:remote D/Receiver 6﹕ 0.0
01-17 22:03:02.007 10911-10911/com.example.nimboo:remote D/Receiver 7﹕ 0.0
01-17 22:03:02.007 10911-10911/com.example.nimboo:remote D/Receiver 8﹕ 0.0
01-17 22:03:02.007 10911-10911/com.example.nimboo:remote D/Receiver 9﹕ 0.0
01-17 22:03:02.017 10911-10911/com.example.nimboo:remote D/Receiver 10﹕ 0.0
01-17 22:03:02.017 10911-10911/com.example.nimboo:remote D/Receiver 11﹕ 0.0
01-17 22:03:02.027 10911-10911/com.example.nimboo:remote D/Receiver 12﹕ 0.0
01-17 22:03:02.027 10911-10911/com.example.nimboo:remote D/Receiver 13﹕ 0.0
01-17 22:03:02.027 10911-10911/com.example.nimboo:remote D/Receiver 14﹕ 0.0
01-17 22:03:02.027 10911-10911/com.example.nimboo:remote D/Receiver 15﹕ 0.0
01-17 22:03:02.027 10911-10911/com.example.nimboo:remote D/Receiver 16﹕ 0.0
01-17 22:03:02.027 10911-10911/com.example.nimboo:remote D/Receiver 17﹕ 0.0
01-17 22:03:02.027 10911-10911/com.example.nimboo:remote D/Receiver 18﹕ 0.0
01-17 22:03:02.027 10911-10911/com.example.nimboo:remote D/Receiver 19﹕ 0.0
01-17 22:03:02.037 10911-10911/com.example.nimboo:remote D/Receiver 20﹕ 0.0
01-17 22:03:02.037 10911-10911/com.example.nimboo:remote D/Receiver 21﹕ 0.0
01-17 22:03:02.037 10911-10911/com.example.nimboo:remote D/Receiver 22﹕ 0.0
01-17 22:03:02.037 10911-10911/com.example.nimboo:remote D/Receiver 23﹕ 0.0
public void testArray(View v) {
for(int i=0; i<24; i++) {
Log.d("Test " + Integer.toString(i), Double.toString(Data.mean_temp_day[i]));
}
}
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 0﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 1﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 2﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 3﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 4﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 5﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 6﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 7﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 8﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 9﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 10﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 11﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 12﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 13﹕ 24.721666666666664
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 14﹕ 12.02
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 15﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 16﹕ 0.0
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 17﹕ 21.323333333333334
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 18﹕ 22.481666666666666
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 19﹕ 22.06833333333333
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 20﹕ 22.098
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 21﹕ 21.98166666666667
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 22﹕ 21.67
01-17 22:02:23.387 9929-9929/com.example.nimboo D/Test 23﹕ 0.0
public final class Data {
public static double[] mean_temp_day = new double[24];
private Data() {
}
}