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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
AndroidProg
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 58
#1

Автоматическое удаление уведомления в статус баре, после нажатия на него - Android

30.01.2014, 21:38. Просмотров 1557. Ответов 2
Метки нет (Все метки)

Создаю уведомление из Activity в onCreate():

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    NotificationManager notificationManager;
 
    notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
 
        Uri address = Uri.parse("http://site");
        Intent openLink = new Intent(Intent.ACTION_VIEW, address);
        PendingIntent pIntent = PendingIntent.getActivity(this, 1, openLink,       PendingIntent.FLAG_CANCEL_CURRENT);
 
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
 
        builder.setContentIntent(pIntent)
                .setSmallIcon(R.drawable.message)
                .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.message))
                .setTicker("Текст в строке состояния")
                .setWhen(System.currentTimeMillis())
                .setAutoCancel(true)
                .setContentTitle("Заголовок")
                .setContentText("Текст");
 
        notificationManager.notify(1, builder.build());
Всё шикарно работает, после нажатия, открывается браузер, а уведомление удаляется из статус бара.

Теперь точно также пытаюсь создать уведомление из Service, всё точно так же работает, НО уведомление из статус бара НЕ удаляется.

Вот метод onCreate() из моего Service

Java
1
2
3
4
5
6
7
8
9
10
@Override
    public void onCreate()
    {
        super.onCreate();
        Notification unusedNotification = new Notification();
        startForeground(1, unusedNotification);
        
        //Тут тоже самое создание уведомления
        
    }
Собсно где проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 21:38     Автоматическое удаление уведомления в статус баре, после нажатия на него
Посмотрите здесь:

Как программно убрать клавиатуру после нажатия кнопки "Далее"? Android
Android Как добраться до записей (notifications) в статус-баре
Отловить изменения в статус баре Android Java Android
Не работает приложение после нажатия кнопки home Android
Сохранить число в поле ввода после нажатия арифметического действия Android
Метод вызывается только после второго нажатия на кнопку Android
GridView после нажатия назад возвращается на первую ячейку Android
Сразу после нажатия Power вызывается OnCreate. Почему? Android
Удаление APK-файла после установки приложения? Android
Отключить перескакивание между edittext после нажатия "готово" Android
Вывод изображения после нажатия кнопки Android
Как восстановить значения при открытии приложения после нажатия кнопки назад Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
30.01.2014, 21:52     Автоматическое удаление уведомления в статус баре, после нажатия на него #2
Цитата Сообщение от AndroidProg Посмотреть сообщение
НО уведомление из статус бара НЕ удаляется.
А оно и не должно, startForeground делает ваш сервис неубиваемым и добавляет уведомление. Хотите чтоб нотификейшен исчезал - юзайте только NotificationManager.notify
AndroidProg
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 58
30.01.2014, 22:00  [ТС]     Автоматическое удаление уведомления в статус баре, после нажатия на него #3
Мне кажется вы немного не поняли, я создаю пустое уведомление и передаю его в startForeground();
Делаю я это чтобы сервис был "неубиваемым".

Далее я создаю ещё одно уведомление:

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
29
    @Override
    public void onCreate()
    {
        super.onCreate();
        Notification unusedNotification = new Notification();
        startForeground(1, unusedNotification);
        
        NotificationManager notificationManager;
 
    notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
 
        Uri address = Uri.parse("http://site");
        Intent openLink = new Intent(Intent.ACTION_VIEW, address);
        PendingIntent pIntent = PendingIntent.getActivity(this, 1, openLink,       PendingIntent.FLAG_CANCEL_CURRENT);
 
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
 
        builder.setContentIntent(pIntent)
                .setSmallIcon(R.drawable.message)
                .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.message))
                .setTicker("Текст в строке состояния")
                .setWhen(System.currentTimeMillis())
                .setAutoCancel(true)
                .setContentTitle("Заголовок")
                .setContentText("Текст");
 
        notificationManager.notify(1, builder.build());
        
    }
Yandex
Объявления
30.01.2014, 22:00     Автоматическое удаление уведомления в статус баре, после нажатия на него
Ответ Создать тему
Опции темы

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