1

У меня есть приложение с генератором уведомлений. Я могу получать и генерировать несколько уведомлений. моя проблема теперь в том, как я могу узнать, какое уведомление было нажато пользователем? каждое уведомление может действовать по-разному, и одновременно может быть не более 5 уведомлений в моем приложении. Я искал в Интернете и ничего не нашел о onClick событие с уведомлением ....android- как инициировать уведомление о событии onclick? или как получить данные только тогда, когда пользователь нажимает на нее

Я обнаружил, что onNewIntent может помочь, но он не стабилен ... так как активность может быть убита системой до того, как пользователь нажмет на уведомление. может кто-то помочь?

спасибо !!

+0

http://stackoverflow.com/questions/10634837/how-to-listen-onclick-event-for-notififation-bar-on-android –

+0

Я видел эту нить также. это решение не сработало, и на самом деле ниже ответ говорит, что нет события onclick. Это то, что я узнал. Ищете работу или новый 'notification.build' выполнит эту работу? – user1865027

+0

Вы можете прикрепить данные и активность, чтобы перейти к намерению и установить это намерение для уведомления. Достаточно информации, чтобы узнать, какой из них был нажат. – AlexBcn

ответ

1

Предлагаю вам добавить данные в намерение, которое вы добавляете к намерению уведомления.

Например.

aim.putExtra ("Notification_id", id) // Вы можете сделать этот идентификатор системным временем или уникальным идентификатором.

(Или же вы можете добавить к вашей пачке статистов, а не просто поставить доп.)

Затем, когда вы идете, чтобы открыть намерения вы можете проверить идентификатор.

ID = intent.getExtra ("Notification_id")

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

ОБНОВЛЕНИЕ: вы должны добавить данные для намерения и прочитать его позже как в onNewIntent(), так и onResume(). Затем вы удаляете лишнее из намерения после того, как сделали то, что вам нужно. Также добавляя уникальные данные, такие как System.currentTimeMillis(), это предотвратит повторное использование намерений.

+0

Можете ли вы, пожалуйста, описать эту проблему? На самом деле я не могу понять, что вы на самом деле говорите здесь? – Maddy

+0

Я немного изменил свой комментарий для ясности. Вы в значительной степени ставите что-то в намерении, а затем читаете его позже в приложении. – RCB

Смежные вопросы