Я добавляю некоторые базовые функции будильника в мою программу с помощью AlarmManager и класса BroadcastReceiver (с именем AReceiver.java). Моя проблема в том, что данные, которые я добавляю в пакет, прикрепленный к Intent, создающему PendingIntent, похоже, потеряны. Единственные данные пакета, к которым я могу получить доступ в классе AReceiver, - это android.intent.extra.ALARM_COUNT = 1.
Вот базовый код в основном классе активности, создающий Intent, PendingIntent и AlarmManager:
[Код в основной деятельности - Notepadv3]
Intent intent = new Intent(Notepadv3.this, AReceiver.class);
intent.putExtra("teststring","hello, passed string in Extra");
PendingIntent alarmIntent = PendingIntent.getBroadcast(this, pendingPeriodIntentId, intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, timeOfNextPeriod.getTimeInMillis(), alarmIntent);
[Код в BroadcastReceiver - AReceiver]
public void onReceive(Context con, Intent arg1) {
Bundle extrasBundle = arg1.getExtras();
Log.d("broadcast","contains teststring = " + extrasBundle.containsKey("teststring"));
Log.d("broadcast","is empty? = " + extrasBundle.isEmpty());
Log.d("broadcast","to string = " + extrasBundle.toString());
}
В отладочных сообщениях говорится, что строка testtring равна FALSE, пусто - FALSE, и при выводе всего пакета я получаю значение android.intent.extra.ALARM_COUNT = 1.
Любая помощь будет принята с благодарностью.
Cheers,
Том