twobomb
@twobomb

(Вопрос для андроид гуру)Почему не сворачивается шторка при нажатии на кнопку в кастомной нотификации?

В общем сделал я свое big Notification, добавил туда кнопку которая открывает активити с настройками, но проблема в том что я нажимаю на кнопку, активити открывается на заднем плане, но шторка не сворачивается, ее нужно вручную свернуть. Как сделать чтобы она сворачивалась при нажатии на кнопку в notification?
Обработчик сделан так, есть класс
public static class MyButtonListener extends BroadcastReceiver {
        @Override
            public void onReceive(Context context, Intent intent) {
            switch (intent.getStringExtra("element")){
                case "SETTINGS":
                    intent = new Intent(context,SettingsActivity.class);
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//МОЖЕТ НУЖНО ДРУГОЙ\ДОПОЛНИТЕЛЬНЫЙ ФЛАГ?

                    context.startActivity(intent);//ВОТ ТУТ ВЫЗЫВАЕТСЯ АКТИВИТИ С НАСТРОЙКАМИ
                    break;
                case "EYE":
                    break;
                case "SOUND":
                    break;
            }
        }
    }

Класс прописан в манифесте
<receiver android:name=".ServiceNotification$MyButtonListener" />

На кнопку настроек вешаю так(при билдинге Notification)
Intent myIntent = new Intent(this, MyButtonListener.class);
                    myIntent.putExtra("element","SETTINGS");
                    PendingIntent pendingMyIntent = PendingIntent.getBroadcast(this, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
                    expandedView.setOnClickPendingIntent(R.id.notif_btn_settings, pendingMyIntent);

Ну или возможно предложите свой вариант обработки кнопок Notification.
  • Вопрос задан
  • 386 просмотров
Решения вопроса 1
twobomb
@twobomb Автор вопроса
Разобрался! Отвечу сам на свой вопрос, может кому понадобится.
Чтобы установить событие на свои кнопки в своей кастомной Big Notification. Следует использовать такую конструкцию.
Intent tt = new Intent(this, SettingsActivity.class);
                    TaskStackBuilder ss = TaskStackBuilder.create(this);
                    stackBuilder.addParentStack(MainActivity.class);
                    stackBuilder.addNextIntent(tt);
                    PendingIntent rr = stackBuilder.getPendingIntent(
                            0, PendingIntent.FLAG_UPDATE_CURRENT);
                    expandedView.setOnClickPendingIntent(R.id.notif_btn_settings, rr);
//notif_btn_settings - ид Кнопки, expandedView это мой RemoteViews

Обязательно стоит использовать TaskStackBuilder иначе активити будет открыватся, но шторка не закроется сама!
Так же не нужен класс ресивер MyButtonListener, флаг FLAG_ACTIVITY_NEW_TASK и прочее...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы