Программно прекращение текущего уведомления - Android - PullRequest
5 голосов
/ 06 марта 2011

Я занимаюсь разработкой приложения для GPS и только что начал добавлять в свой UX-функции, такие как уведомления и индикаторы выполнения, но я застрял на постоянном уведомлении.

Поскольку это приложение GPS,Когда начинается отслеживание пользователей, я настраиваю текущее уведомление, чтобы показать, что они отслеживаются, но как мне остановить это уведомление, когда они нажимают «остановить отслеживание» в моем приложении?Должен ли я что-то сказать NotifyManager?Я в основном пытаюсь получить функциональность, которая есть в музыкальных проигрывателях, так как уведомление о «воспроизведении» появляется, когда пользователь нажимает кнопку воспроизведения, но когда они делают паузу, текущее уведомление о «воспроизведении» уничтожается.Я никогда раньше не работал с GPS, но стоит ли мне заняться этим в Сервисе, чтобы пользователь не переставал отслеживать, если ОС забирает мое приложение из памяти?Или этого не произойдет?

Ответы [ 2 ]

9 голосов
/ 06 марта 2011

Я мало что сделал с уведомлениями, но вы можете попробовать это:

NotificationManager.cancel(id); // Where 'id' is the id of your notification

Заменить NotificationManager на имя вашего экземпляра, конечно.

документы:http://developer.android.com/reference/android/app/NotificationManager.html#cancel%28int%29

Или вот это:

Notification.Builder.setAutoCancel(true);

http://developer.android.com/reference/android/app/Notification.Builder.html#setAutoCancel%28boolean%29

3 голосов
/ 02 января 2015

Начало

int id = 01;
NotificationCompat.Builder mBuilder =
      new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.ic_launcher)
        .setContentTitle(getResources().getString(R.string.service_header))
        .setContentText("Connect to: http://" + httpd.getip() + ":8080")
        .setContentIntent(pendingIntent)
        .setOngoing(true);

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(01, mBuilder.build());

Отмена

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancel(01);
...