Форум программистов, компьютерный форум CyberForum.ru

Обработать нажатие на кнопки в уведомлении - Android

Восстановить пароль Регистрация
 
HanDi
 Аватар для HanDi
889 / 336 / 8
Регистрация: 11.02.2012
Сообщений: 1,502
08.02.2016, 20:27     Обработать нажатие на кнопки в уведомлении #1
Еще раз здравствуйте.

Дело такое.

Есть уведомление, в нем две кнопки. Они должны выполнять различные действия (вызов методов). Каким образом это можно организовать?

Реализовать для вызова активити разных я смог, а с методами не знаю, что делать.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public static void createPushWithIMG(Context ctx, int minutes, AlarmManagerBroadcastReceiver alarm)
    {
        NotificationManager notificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
 
        Intent intent = new Intent(ctx, StopActivity.class);
        PendingIntent pIntent = PendingIntent.getActivity(ctx, 0, intent, 0);
 
        Intent intent2 = new Intent(ctx, PrefActivity.class);
        PendingIntent pIntent2 = PendingIntent.getActivity(ctx, 0, intent2, 0);
 
        // Строим уведомление
        Notification builder = new Notification.Builder(ctx)
                .setTicker("Хэй")
                .setContentTitle("Timer")
                .setAutoCancel(true)
                .setContentText(
                        "Выключение через " + minutes +" мин.")
                .setSmallIcon(R.drawable.ic_launcher).setContentIntent(pIntent)
                .addAction(R.drawable.ic_launcher, "Отменить", pIntent)
                .addAction(R.drawable.ic_launcher, "Продлить", pIntent2)
                .build();
 
        // убираем уведомление, когда его выбрали
        builder.flags |= Notification.FLAG_AUTO_CANCEL;
 
        notificationManager.notify(0, builder);
    }
Спасибо.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2016, 20:27     Обработать нажатие на кнопки в уведомлении
Посмотрите здесь:

Как обработать нажатие ImageView Android
Android Долгое нажатие кнопки
Android Как в ListView обработать нажатие кнопки и изменить здесь же значение в textView ?
Android Отловить нажатие кнопки Done
Не обрабатывается нажатие кнопки Android
AsyncTask, отловить нажатие кнопки Android
Определить нажатие кнопки Home и кнопки сворачивания приложения Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ханасака
10 / 10 / 0
Регистрация: 12.07.2013
Сообщений: 143
09.02.2016, 02:57     Обработать нажатие на кнопки в уведомлении #2
Здравствуйте! Может создавать PendingIntent с помощью getBroadcast, а обрабатывать в onReceive класса, наследующего BroadcastReceiver, фильтруя actions? Главное не забыть в манифесте ресивер указать.
Паблито
не спать!
1882 / 1616 / 500
Регистрация: 12.05.2014
Сообщений: 5,836
Завершенные тесты: 1
09.02.2016, 11:49     Обработать нажатие на кнопки в уведомлении #3
непонятно о каких кнопках и методах идет речь, если честно
HanDi
 Аватар для HanDi
889 / 336 / 8
Регистрация: 11.02.2012
Сообщений: 1,502
09.02.2016, 12:01  [ТС]     Обработать нажатие на кнопки в уведомлении #4
Паблито, Вот как на этой картинке

Собственно 2 кнопки.
Паблито
не спать!
1882 / 1616 / 500
Регистрация: 12.05.2014
Сообщений: 5,836
Завершенные тесты: 1
09.02.2016, 12:11     Обработать нажатие на кнопки в уведомлении #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
что бы именно вызывать методы, сомневаюсь
но можно сделать так:
вот в коде выше по нажатию на кнопку вызывается какая-то активити через созданный интент
в этой активити можно переопределить метод
Java
1
2
3
4
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
    }
он будет вызываться когда активити запускается через интент, можно еще усложнить - в нотификейшене в интент добавлять setAction("MY_AWESOME_ACTION"); грубо говоря это просто строка
а в onNewIntent брать эту строку так intent.getAction() и дальше через switch-case условия запускать нужные методы

надеюсь понятно изложил
HanDi
 Аватар для HanDi
889 / 336 / 8
Регистрация: 11.02.2012
Сообщений: 1,502
09.02.2016, 16:24  [ТС]     Обработать нажатие на кнопки в уведомлении #6
Паблито, да, спасибо.

Добавлено через 4 часа 11 минут
Паблито, а как в таком случае передать что-то в Activity? А быть точнее Context. Это возможно вообще? putExtra же вряд ли тут подойдет.
Паблито
не спать!
1882 / 1616 / 500
Регистрация: 12.05.2014
Сообщений: 5,836
Завершенные тесты: 1
09.02.2016, 16:33     Обработать нажатие на кнопки в уведомлении #7
Цитата Сообщение от HanDi Посмотреть сообщение
putExtra же вряд ли тут подойдет.
почему?
туда можно кучу всего напихать, а если это какие-то модели-объекты, можно например переводить в json и передавать как строки
HanDi
 Аватар для HanDi
889 / 336 / 8
Регистрация: 11.02.2012
Сообщений: 1,502
09.02.2016, 16:39  [ТС]     Обработать нажатие на кнопки в уведомлении #8
Цитата Сообщение от Паблито Посмотреть сообщение
почему?
туда можно кучу всего напихать, а если это какие-то модели-объекты, можно например переводить в json и передавать как строки
Я попробовал context засунуть, не выходит

Мне туда нужно "запихать" вот эти чудеса, это возможно?

Context ctx
AlarmManagerBroadcastReceiver alarm
Паблито
не спать!
1882 / 1616 / 500
Регистрация: 12.05.2014
Сообщений: 5,836
Завершенные тесты: 1
09.02.2016, 16:41     Обработать нажатие на кнопки в уведомлении #9
если честно я не вникал в задачу, но если возникла необходимость передавать контекст или что-то такое сложное - значит что-то не так с архитектурой приложения

зачем в одной и той же программе передавать через интенты контекст?
он и так один на все приложение
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2016, 16:43     Обработать нажатие на кнопки в уведомлении
Еще ссылки по теме:

Android Реакция кнопки на нажатие
Android Не получается обработать нажатие на кнопку Home в ActionBar
Как обработать нажатие кнопки "Назад", чтобы открывался рекламный баннер? Android
Android Как обработать нажатие на ImageView? Eclipse(android)
Как обработать нажатие на изображение в элементе listView? Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
HanDi
 Аватар для HanDi
889 / 336 / 8
Регистрация: 11.02.2012
Сообщений: 1,502
09.02.2016, 16:43  [ТС]     Обработать нажатие на кнопки в уведомлении #10
Паблито, там чудо с алармами, и чтобы его точно закончить мне как-то нужно было сохранить, приходится сейчас так извращаться, да уж, похоже будет легче сейчас переделать немного структуру проекта
Yandex
Объявления
09.02.2016, 16:43     Обработать нажатие на кнопки в уведомлении
Ответ Создать тему
Опции темы

Текущее время: 02:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru