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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 129
#1

Убрать уведомление при выходе из приложения - Программирование Android

13.09.2016, 13:37. Просмотров 718. Ответов 24
Метки нет (Все метки)

Привет, нужно удалить уведомление при закрытие приложения. как это сделать? так же на кнопку Home.
А то если выхожу из приложения, а потом перехожу по уведомлению: он подгружает пустою активность без данных.
Java
1
2
3
4
5
6
7
8
....
 NotificationManager notificationManager = (NotificationManager) context //типо создал уведомление
                .getSystemService(Context.NOTIFICATION_SERVICE);
 
        notificationManager.notify(0, builder.build());
 
        notificationManager.cancel(0); // вот так типо удалил
....
[

Добавлено через 9 минут
а все в onDestroy нужно было засунуть
Java
1
 notificationManager.cancel(0);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2016, 13:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Убрать уведомление при выходе из приложения (Программирование Android):

Уведомление пользователя при выходе из приложения - Программирование Android
Как лучше реализовать? т.е. при нажатии кнопки HOME(железной) или интерфейсной должно выскочить окошко подтверждения типо вы уверены..

Разворачивание приложения при нажатии на уведомление - Программирование Android
Context context = getApplicationContext(); Intent notificationIntent = new Intent(context, this.getClass()); PendingIntent...

Остановить сервис при выходе из приложения - Программирование Android
Начал делать сервис для приложения и сразу возник костыль. Стартую сервис в onCreate активити, сервис постоянно должен работать на...

Автоматическое запоминание позиции при выходе из приложения - Программирование Android
Здравствуйте. Разрабатываю приложение, в котором имеется текст с вертикальной прокруткой. Подскажите, пожалуйста, как реализовать...

Убрать уведомление из статус-бара - Программирование Android
Чтобы убрать уведомление из статус-бара используют: notificationmanager.cancel(int id), но как узнать id уведомления?

Уведомление от неактивного приложения - Программирование Android
Вобщем, суть вопроса в теме-как сделать так, чтобы установленное, но не запущенное приложение через определенные промежутки времени...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ExFau$t
276 / 251 / 44
Регистрация: 08.05.2012
Сообщений: 1,362
15.09.2016, 13:04 #16
Ну и открывай нужный чат, ты же в приложении как-то открываешь его? Тебе надо в оповещение запилить тот же интент, что и при навигации в самом приложении с теми же extra. Если сообщение уже пришло, значит оно у тебя загружено и тебе просто нужно его показать в нужном чате.
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 129
15.09.2016, 13:10  [ТС] #17
ExFau$t, я же говорю, все открывается пока приложение не убито.
Когда оно уже не запущенно, тогда данных уже нет.
Дело в том что когда убиваешь, той активити уже нет. а уведомление висит.
ExFau$t
276 / 251 / 44
Регистрация: 08.05.2012
Сообщений: 1,362
15.09.2016, 13:12 #18
TonyBicbaev, да это вообще не имеет значения, ты запускаешь интент по новой и происходит запуск приложения в соответствующем окне.
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 129
15.09.2016, 13:19  [ТС] #19
ExFau$t, нууу вот это я и пытаюсь решить. Любо удалять либо заполнять.
ExFau$t
276 / 251 / 44
Регистрация: 08.05.2012
Сообщений: 1,362
15.09.2016, 13:22 #20
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
28
public void createInfoNotification(String message, String name, String CategoryName, int id, int nameCat, double lat, double lon) {
        manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        Intent notificationIntent = new Intent(context, Information.class);
        notificationIntent.putExtra("locate1", lat);
        notificationIntent.putExtra("locate2", lon);
        notificationIntent.putExtra("cat", CategoryName);
        notificationIntent.putExtra("nameCat", nameCat);
        notificationIntent.putExtra("id", id);
        notificationIntent.putExtra("zoom", 15);
        notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
        notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        Notification.Builder nb = new Notification.Builder(context) 
                .setSmallIcon(R.mipmap.ic_launcher) 
                .setAutoCancel(true) 
                .setTicker(message) 
                .setContentIntent(PendingIntent.getActivity(context, id, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT))
                .setWhen(System.currentTimeMillis()) 
                .setContentTitle(message) 
                .setDefaults(Notification.DEFAULT_ALL); 
        Notification notification;
        if (Build.VERSION.SDK_INT >= 16)
            notification = new Notification.BigTextStyle(nb).bigText(name).build();
        else
            notification = nb.setContentText(name).getNotification();
        notification.flags |= Notification.FLAG_AUTO_CANCEL;
        manager.notify(id, notification); 
    }
Старенький код выдернул со старого проекта, рабочий. Запускается даже после рестарта телефона.

Добавлено через 2 минуты
Дело, наверное, в этом:
Java
1
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 129
07.10.2016, 11:04  [ТС] #21
vxg, А вообще кстати сейчас по уведомления есть пару вопросов:
из примера выше, здесь мы передаем данные.
но если приложение не закрыто, ну то есть активно. как мне получить данные?
Java
1
2
3
4
5
6
7
8
9
10
 Intent notificationIntent = new Intent(context, Information.class);
        notificationIntent.putExtra("locate1", lat);
        notificationIntent.putExtra("locate2", lon);
        notificationIntent.putExtra("cat", CategoryName);
        notificationIntent.putExtra("nameCat", nameCat);
        notificationIntent.putExtra("id", id);
        notificationIntent.putExtra("zoom", 15);
        notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
        notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
я знаю что так , но как мне внести изменения, если активность создана? и он OnCreate ток считывает от туда, попробовал в onResume, нечего не происходит.
Java
1
2
Intent intent = getIntent(); 
String str = intent.get... // ну так далее
Добавлено через 8 минут
onResume сработает ток если приложение закрыто, и я перехожу по уведомлению.
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,746
Завершенные тесты: 1
07.10.2016, 11:10 #22
если активити на экране и в приложение прилетает интент то срабатывает не onCreate а метод onNewIntent
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 129
07.10.2016, 11:31  [ТС] #23
Паблито, а как избежать что бы одна и таже активность не запускалась, по новой? а то получается, по переходу. какие флаги поставить?
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,746
Завершенные тесты: 1
07.10.2016, 11:35 #24
https://developer.android.com/guide/...ack.html?hl=ru
читать там про singleTask
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 129
08.12.2016, 09:39  [ТС] #25
Паблито, Возник такой вопрос по Уведомлению
В интете передаю значение.
в активности при загрузки получаю getIntent();
Когда я закрываю приложение кнопкой "Back" ну то есть там finish();
И запускаю активность опять в getIntent остается то значение которое передавал в уведомлении.

Добавлено через 10 минут
Паблито,
нашел ток такое решение getIntent.removeExtra("key");
и еще, у меня активность в ней фрагменты.
даже когда удаляю остается последний подгруженный фрагмент, это нормально?
как зачистить в общем?

Добавлено через 17 минут
Паблито, не помогло
Цитата Сообщение от TonyBicbaev Посмотреть сообщение
getIntent.removeExtra("key");
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2016, 09:39
Привет! Вот еще темы с ответами:

Убрать панель с названием приложения при редактировании лаяута - Программирование Android
Подскажите как можно избавится от bar-а где написано название приложения именно при редактировании лаяута. Так как если использовать...

Действие при сворачивании или при выходе - Программирование Android
Добрый вечер. Вот такой небольшой вопрос. Какими действиями можно сделать так, чтобы к примеру когда пользователь сворачивал...

Открыть старое активити при клике на уведомление - Программирование Android
Добрый день. Есть такая штука: создается уведомление, оно появляется, при этом приложение по сути закрывается finish(); Далее при...

Почему выскакивает уведомление при попытке запустить apk ? - Программирование Android
Добрый день, открываю APK файл для установки его на android с помощью данного кода Intent intent = new...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.12.2016, 09:39
Ответ Создать тему
Опции темы

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