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

Метод getService

Метод getService класса PendingIntent сохраняет intent для запуска Service позже. На новых версия Android фоновый запуск service ограничен, но PendingIntent всё ещё используют в alarm и уведомлениях, где это разрешено. Intent задают явным классом service или action по правилам приложения.

Синтаксис

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

Параметры

Параметр Описание
context Context приложения.
requestCode Код, отличающий этот PendingIntent от других.
intent Intent для конкретного service.
flags Флаги PendingIntent, обычно с FLAG_IMMUTABLE.

Пример

Давайте создадим PendingIntent для NoteService:

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, NoteService::class.java).apply { putExtra("note", "12345") } val flags = PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE PendingIntent.getService(this, 20, intent, flags) setContent { Text(text = "abcde") } } }

На экране "abcde", PendingIntent готов запустить service с extra note.

Пример

Давайте зададим action в intent service:

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, NoteService::class.java).apply { action = "com.example.action.SYNC" } val flags = PendingIntent.FLAG_IMMUTABLE PendingIntent.getService(this, 21, intent, flags) setContent { Text(text = "12345") } } }

На экране текст "12345", pending передаст action при запуске service.

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

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