1

Я пишу уведомление пользовательских загрузки, очень похожий на что из Picasa Photo Uploader http://code.google.com/p/picasaphotouploader/source/browse/trunk/src/com/android/picasaphotouploader/UploadNotification.javaNotification флаги имеют значение -3

При создании, я поставил FLAG_ONGOING_EVENT и она работает. После загрузки будет сделано, у меня есть эти две строки:

flags =~ Notification.FLAG_ONGOING_EVENT; flags += Notification.FLAG_AUTO_CANCEL;

Однако мое уведомление не отменяемый и flags имеет значение -3. У вас есть идея, почему я больше не могу менять флаги?

+0

Вы обновили «Уведомление» через 'notify()' после изменения флагов? – CommonsWare

+0

Да, я сделал 'manager.notify (id, this);' В любом случае, я вручную установил значение флагов для 16 для FLAG_AUTO_CANCEL, но мне все равно хотелось бы знать, что именно происходит ... – dulys

ответ

4

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

В этом случае использование:

flags = (~Notificatoin.FLAG_ONGOING_EVENT | Notification.FLAG_AUTO_CANCEL); 

Это может выглядеть странно, потому что, если вы не знаете, битовые операции, ваши инстинкты говорят вам «не постоянный или автоматически отменить», но это действительно означает отключить продолжающаяся бит и включить бит автоматической отмены.

Предлагаю прочитать побитовые операторы и бит-маски.

+0

+1 для обнадеживающих комментарий об инстинктах. – ataulm