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