Для чего нужен PendingIntent

«Для чего нужен PendingIntent» — вопрос из категории Android компоненты, который задают на 27% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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 для безопасности