У меня есть Activity A и класс B (расширяет BroadCastReceiver). Из А я делаю будильник следующим образом:
Intent intent = new Intent(getApplicationContext(), TimerAlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Calendar time = Calendar.getInstance();
time.setTimeInMillis(System.currentTimeMillis());
time.add(Calendar.SECOND, 5);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), 3000, pendingIntent);
и это это B (имя TimerAlarmReceiver):
public class TimerAlarmReceiver extends BroadcastReceiver {
public static long TIME;
public static Boolean TimerOn=false;
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarm went off", Toast.LENGTH_SHORT).show();
Log.v("Tag", Long.toString(TimeKeeper.Time));
}
public static void setTime(long T)
{ TIME=TimerActivity.DMILLIS;
}
}
Что я хочу сделать, так это получить доступ к чему-то вроде статической переменной из onReceive. Я попытался создать общедоступный статический элемент в действии. Журналы показывают правильное установленное значение, пока приложение работает. Но если я принудительно выйду из приложения, журнал onReceive станет 0.
Итак, как мне передать начальное значение B ? Что-то, что сохраняет значение, даже если приложение закрыто (принудительный выход).