Ответ
PendingIntent позволяет передать право на выполнение Intent другому приложению или системе. Это полезно для отложенных действий, например:
- Запуск
Activity,Service,BroadcastReceiverпозже - Создание уведомлений с действиями
- Запуск по таймеру (
AlarmManager)
val intent = Intent(this, MyActivity::class.java)
val pendingIntent = PendingIntent.getActivity(
this,
0,
intent,
PendingIntent.FLAG_IMMUTABLE
)
// Можно передать в Notification или AlarmManager
notificationBuilder.setContentIntent(pendingIntent)
Ключевые особенности:
- Выполняется с правами вашего приложения
- Можно обновлять (
FLAG_UPDATE_CURRENT) - Может быть одноразовым (
FLAG_ONE_SHOT) - Рекомендуется использовать
FLAG_IMMUTABLEдля безопасности