Во многих случаях полезно использовать coreutils (grep, sed и т. д.) в сочетании с Git. Я уже знаю эти инструменты достаточно хорошо, но Git меньше. Если бы я захотел выполнить поиск удалённого файла, я бы сделал следующее:
git log --raw | grep -B 30 $'D\t.*deleted_file.c'
Когда я нахожу ревизию / фиксацию:
git checkout ^ -- path/to/refound/deleted_file.c
Так же, как другие
Файл будет восстановлен до состояния, которое было перед удалением. Не забудьте повторно зафиксировать его на рабочем дереве, если вы хотите его сохранить.
Посмотрите FLAG_AUTO_CANCEL
Бит, который будет поразрядно распределен в поле флагов, которое должно быть установлено, если уведомление должно быть отменено при щелчке пользователем.
РЕДАКТИРОВАТЬ:
notification.flags |= Notification.FLAG_AUTO_CANCEL;
Единственный способ, которым я могу видеть это, - это чтобы ваши Notification
указали на Intent
фон Service
. Когда эта служба запущена, она очистит заданное значение Notification
, используя NotificationManager.cancel(int id)
. Service
затем остановится сам. Это не красиво, и его нелегко реализовать, но я не могу найти другого способа сделать это.
Установите флаги в уведомлениях.флаги вместо уведомлений.дефультов.
Пример:
notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE | Notification.FLAG_AUTO_CANCEL;
/**
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);
Если вы используете NotificationCompat.Builder
(часть android.support.v4
), просто вызовите метод объекта setAutoCancel
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setAutoCancel(true);
Некоторые ребята сообщали, что setAutoCancel()
не работает для них так что вы можете попробовать и этот способ
builder.build().flags |= Notification.FLAG_AUTO_CANCEL;
Использование 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());
Часто вы можете захотеть направить пользователя к соответствующему контенту и поэтому можете заменить «новое намерение». () 'с чем-то еще.