Метод 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