Запуск сервиса с начальным значением - PullRequest
2 голосов
/ 03 февраля 2011

Я пытаюсь заставить службу напоминания / будильника работать в моем приложении note / todo.Я могу установить напоминание для определенного элемента, и тревога срабатывает и отображает уведомление успешно.

Моя проблема в том, как мой Service может узнать, какой элемент заметки / задачи задает это конкретное напоминание.Я хотел бы, чтобы пользователь мог щелкнуть по уведомлению в строке состояния и получить элемент, который вызывает его появление.Но я не могу передать эту информацию Service, поскольку они не принимают Bundles от PendingIntent.

. В настоящее время я установил будильник следующим образом:

private void createAlarm() {
     Intent i = new Intent(this, AlarmService.class);
     PendingIntent sender = PendingIntent.getService(this, 0, i, 0);
     AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
     am.set(AlarmManager.RTC_WAKEUP, mReminderCal.getTimeInMillis(), sender);
}

Мне просто нужен способ отправить _id элемента в моей базе данных, чтобы моя служба могла запустить элемент с тем же _id при нажатии на уведомление.

Я надеюсь, что мой вопросне слишком запутанно.

Спасибо!

1 Ответ

1 голос
/ 03 февраля 2011

Почему вы не вкладываете все свои данные в данные Intent?Примерно так:

    final Intent intent = new Intent(context, UpdatesActivity.class);
    intent.putExtra(ID, "foo");
    final PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

Затем при получении вы делаете

    String id = getIntent().getStringExtra(ID);
...