I would like to get values from some static Array inside BroadcastReceiver. The problem is that it is always filled with zeroes inside BroadcastReceiver, while it is not anywhere else in the application. Inside MainActivity I created a testArray method which also displays the same array into the logcat and the values are different.
AlarmReceiver.java
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]));
}
}
}
What I get in logcat when onReceive is called
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
testArray method - part of MainActivity.java code
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]));
}
}
What I get in logcat when calling testArray
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
Data.java
public final class Data {
public static double[] mean_temp_day = new double[24];
private Data() {
}
}
What is the reason of such results? I don't understand why does a static Array contain different values? How to get proper values of a static Array inside a BroadcastReceiver?