Уведомление Android намерено очистить себя

Во многих случаях полезно использовать coreutils (grep, sed и т. д.) в сочетании с Git. Я уже знаю эти инструменты достаточно хорошо, но Git меньше. Если бы я захотел выполнить поиск удалённого файла, я бы сделал следующее:

git log --raw | grep -B 30 $'D\t.*deleted_file.c'

Когда я нахожу ревизию / фиксацию:

git checkout ^ -- path/to/refound/deleted_file.c

Так же, как другие

Файл будет восстановлен до состояния, которое было перед удалением. Не забудьте повторно зафиксировать его на рабочем дереве, если вы хотите его сохранить.

29
задан John 13 August 2010 в 17:49
поделиться

6 ответов

Посмотрите FLAG_AUTO_CANCEL

Бит, который будет поразрядно распределен в поле флагов, которое должно быть установлено, если уведомление должно быть отменено при щелчке пользователем.

РЕДАКТИРОВАТЬ:

notification.flags |= Notification.FLAG_AUTO_CANCEL;
74
ответ дан Mehul Joisar 13 August 2010 в 17:49
поделиться

Единственный способ, которым я могу видеть это, - это чтобы ваши Notification указали на Intent фон Service. Когда эта служба запущена, она очистит заданное значение Notification, используя NotificationManager.cancel(int id). Service затем остановится сам. Это не красиво, и его нелегко реализовать, но я не могу найти другого способа сделать это.

1
ответ дан iandisme 13 August 2010 в 17:49
поделиться

Установите флаги в уведомлениях.флаги вместо уведомлений.дефультов.

Пример:

notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE | Notification.FLAG_AUTO_CANCEL;
19
ответ дан Proxy32 13 August 2010 в 17:49
поделиться
 /** 
      Post a notification to be shown in the status bar. 
      Obs.: You must save this values somewhere or even pass it as an extra through Intent to use it later
 */
 notificationManager.notify(NOTIFICATION_ID, notification);

 /** 
      Cancel a previously shown notification given the notification id you've saved before
 */
 notificationmanager.cancel(NOTIFICATION_ID);
1
ответ дан Paulo Miguel Almeida 13 August 2010 в 17:49
поделиться

Если вы используете NotificationCompat.Builder (часть android.support.v4), просто вызовите метод объекта setAutoCancel

NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setAutoCancel(true);

Некоторые ребята сообщали, что setAutoCancel() не работает для них так что вы можете попробовать и этот способ

builder.build().flags |= Notification.FLAG_AUTO_CANCEL;
10
ответ дан The Hungry Androider 13 August 2010 в 17:49
поделиться

Использование setContentIntent должно решить вашу проблему:

.setContentIntent(PendingIntent.getActivity(this, 0, new Intent(), 0));

Например:

NotificationCompat.Builder mBuilder= new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.notification_icon)
        .setContentTitle("title")
        .setAutoCancel(true)
        .setContentText("content")
        .setContentIntent(PendingIntent.getActivity(this, 0, new Intent(), 0));
NotificationManager notificationManager= (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, mBuilder.build());

Часто вы можете захотеть направить пользователя к соответствующему контенту и поэтому можете заменить «новое намерение». () 'с чем-то еще.

1
ответ дан Amal Dev S I 13 August 2010 в 17:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: