Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
316 of 502 menu
◀ ▶

Метод getBroadcast

Метод getBroadcast класса PendingIntent сохраняет intent для BroadcastReceiver. Система или пользователь вызовет его позже, например из кнопки уведомления. Intent обычно задают с явным action и extras, как у обычного broadcast.

Синтаксис

val pending = PendingIntent.getBroadcast(context, 0, intent, flags)

Параметры

Параметр Описание
context Context приложения для создания PendingIntent.
requestCode Уникальный код среди pending этого приложения.
intent Intent с action для receiver.
flags Флаги PendingIntent, включая IMMUTABLE при необходимости.

Пример

Давайте создадим PendingIntent с action и note:

import android.app.PendingIntent import android.content.Intent import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val intent = Intent("com.example.action.NOTE").apply { setPackage(packageName) putExtra("note", "abcde") } val flags = PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE PendingIntent.getBroadcast(this, 10, intent, flags) setContent { Text(text = "12345") } } }

На экране текст "12345", PendingIntent готов отправить broadcast с note "abcde".

Пример

Давайте используем FLAG_ONE_SHOT для одноразового broadcast:

import android.app.PendingIntent import android.content.Intent import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val intent = Intent("com.example.action.ONCE") val flags = PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_IMMUTABLE PendingIntent.getBroadcast(this, 11, intent, flags) setContent { Text(text = "abcde") } } }

На экране "abcde", pending сработает один раз после вызова системой.

Смотрите также

  • метод getActivity,
    PendingIntent для activity
  • метод getService,
    PendingIntent для service
  • метод setAction,
    action в intent для broadcast
  • класс PendingIntent,
    где объявлен getBroadcast
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить