Метод вызова Android из панели уведомлений

У меня есть следующий (упрощенный) код в моем классе Android MainActivity.java.

case R.id.menu_stop:
    stopPlaying();
  return true;

Как я могу вызвать stopPlaying(), используя намерение, когда кнопка действия нажата в уведомлении Jelly Bean? Уведомление встроено в мой класс StreamingService.java. Я могу заставить работать кнопки действий, которые запускают сообщения электронной почты, телефона и SMS, я просто не знаю, как вызывать методы в моем коде.

Мой код в методе stopPlaying() выглядит следующим образом

private void stopPlaying() {
    Intent intent = new Intent(this, StreamingService.class);
    stopService(intent);
}



Ответы (1)


Вы захотите использовать шаблон проектирования Broadcast/Receiver.

Вот хорошее руководство для начала: http://www.vogella.com/articles/AndroidBroadcastReceiver/article.html

По сути, вы захотите написать приемник и зарегистрировать его в своем сервисе. Затем, когда кнопка в вашем уведомлении нажата, вы хотите запустить трансляцию (которая требует намерения), пока приемник вашей службы ожидает. Когда он получает трансляцию (в основном мгновенно), он может вызвать ваш метод stopPlaying().

person D Yao.    schedule 07.09.2012