Что такое PendingIntent

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

Ответ

PendingIntent — это токен, который позволяет внешнему приложению выполнить действие от имени вашего приложения с теми же разрешениями. Он используется для отложенных операций, например, запуска Activity, Service или BroadcastReceiver.

Основные особенности:

  • Создается через PendingIntent.getActivity(), getService() или getBroadcast()
  • Может быть одноразовым (FLAG_ONE_SHOT)
  • Поддерживает обновление (FLAG_UPDATE_CURRENT)

Пример создания уведомления с PendingIntent:

val intent = Intent(this, MainActivity::class.java)
val pendingIntent = PendingIntent.getActivity(
    this, 0, intent, PendingIntent.FLAG_IMMUTABLE
)
NotificationCompat.Builder(this, CHANNEL_ID)
    .setContentIntent(pendingIntent)
    // ...