Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Мобильная разработка (Android)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2019, 18:28   #1
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию Показать Activity на переднем плане

Приложение состоит из Activity и Service.
При запуске сервиса, он создает уведомление. При нажатии на него должна показаться MainActivity.
Вот так создаю уведомление
Код:

            Intent notification_intent = new Intent(context, MainActivity.class);
            PendingIntent content_intent = PendingIntent.getActivity(context, 0, notification_intent,
                    PendingIntent.FLAG_CANCEL_CURRENT);

            // Создаем уведомление
            NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
            builder.setContentIntent(content_intent)
                    .setSmallIcon(R.drawable.ic_hourglass_full_black_24dp)
                    .setContentTitle(resources.getString(R.string.app_name))
                    .setShowWhen(true)
                    .setUsesChronometer(false)
                    .setLargeIcon(BitmapFactory.decodeResource(resources, R.mipmap.ic_launcher))
                    .setOngoing(true);

            startForeground(NOTIFICATION_ID, builder.build());
И все вроде бы нормально работает. Но, если у меня уже запущена MainActivity и пользователь нажмет на уведомление, будет создана еще одна MainActivity.
А две MainActivity это не есть хорошо. При нажатии кнопки назад, одна Activity закрывается, но другая еще существует и вылазит на передний план. Пользователю это не нравиться.

Можно ли не создавать новую Actyvity, а показать уже созданную? Или надо по другому решать эту проблему?
SAMOUCHKA вне форума Ответить с цитированием
Старый 18.09.2019, 22:25   #2
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Насколько мне позволяют мои скудные знания мобильной разработки: активной может быть только одна активность. Как Вы умудряетесь сделать их две?
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 18.09.2019, 23:30   #3
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

to Desc
Цитата:
Сообщение от Desc Посмотреть сообщение
Как Вы умудряетесь сделать их две?
Элементарно. И это указано в его коде.

При тапе на уведомлении отрабатывает intent, который создаёт второй экземпляр MainActivity, который будет находиться в стеке поверх первого.

to SAMOUCHKA

Попробуйте поиграться с флагами при создании notification_intent. Например, с singleTop. За подробностями можете обратиться к хабростатье.

Последний раз редактировалось Streletz; 18.09.2019 в 23:37.
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
По нажатию на кнопку Показать приложение должно открыть новое окно и показать в нем заказанные картинки с короткими подписями Zerroz JavaScript, Ajax 0 26.04.2017 23:56
Activity Drago56 Java Мобильная разработка (Android) 1 17.06.2016 09:20
Как рисовать на переднем плане формы? Karp_13 C++ Builder 7 13.03.2012 15:18
узнать окно на переднем плане или нет fate Win Api 3 21.09.2011 14:26
Всегда на переднем плане Rapala Общие вопросы Delphi 10 28.04.2010 16:54