Static arrays are always filled with zeroes in BroadcastReceiver

47 Views Asked by At

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?

0

There are 0 best solutions below