PendingIntent представляет собой токен, предоставляющий другому приложению возможность выполнить часть кода от имени вашего приложения с вашими разрешениями.
Он используется для:
Основные отличия от обычного Intent:
PendingIntent передается другому приложению.PendingIntent сохраняет разрешения исходного приложения.Типы PendingIntent:
getActivity(): Для запуска Activity.
kotlin
getService(): Для запуска Service.
kotlin
getBroadcast(): Для отправки широковещательного сообщения.
kotlin
Флаги PendingIntent влияют на поведение:
| Флаг | Описание |
|---|---|
FLAG_ONE_SHOT | PendingIntent можно использовать только один раз. |
FLAG_NO_CREATE | Если PendingIntent не существует, не создавать его, вернуть null. |
FLAG_CANCEL_CURRENT | Если PendingIntent с тем же Intent уже существует, отменить его и создать новый. |
FLAG_UPDATE_CURRENT | Если PendingIntent с тем же Intent уже существует, обновить его Extra. |
FLAG_IMMUTABLE | PendingIntent не может быть изменен другими приложениями (рекомендуется). |
При использовании PendingIntent важно указывать уникальные коды запроса (второй аргумент в методах getActivity, getService, getBroadcast), чтобы различать их.