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

Метод getActivity

Метод getActivity класса PendingIntent оборачивает Intent для запуска экрана позже. Параметр requestCode различает несколько pending у одного приложения. В flags на API 31+ обычно добавляют FLAG_IMMUTABLE или FLAG_MUTABLE. Готовый объект передают в Notification или виджет, а не вызывают startActivity сразу.

Синтаксис

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

Параметры

Параметр Описание
context Context приложения, часто activity или application.
requestCode Целое число, идентифицирующее этот PendingIntent.
intent Intent целевой activity с extras при необходимости.
flags Битовая маска PendingIntent, включая IMMUTABLE или MUTABLE.

Пример

Давайте создадим PendingIntent с extra 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(this, SecondActivity::class.java).apply { putExtra("note", "12345") } val flags = PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE PendingIntent.getActivity(this, 0, intent, flags) setContent { Text(text = "abcde") } } }

На экране текст "abcde", а PendingIntent готов открыть SecondActivity с note позже.

Пример

Давайте сравним requestCode для двух pending:

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 flags = PendingIntent.FLAG_IMMUTABLE val first = Intent(this, SecondActivity::class.java) val second = Intent(this, ThirdActivity::class.java) PendingIntent.getActivity(this, 1, first, flags) PendingIntent.getActivity(this, 2, second, flags) setContent { Text(text = "12345") } } }

На экране "12345", а два PendingIntent различаются requestCode 1 и 2.

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

  • метод getBroadcast,
    PendingIntent для receiver
  • метод startActivity,
    немедленный запуск того же intent
  • метод putExtra,
    данные в intent для pending
  • класс PendingIntent,
    где объявлен getActivity
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить