Middle
Androidда фондук кызмат (алдыңкы кызмат) эмне?
sobes.tech AI
AIден жооп
Фондук кызмат (foreground service) — Androidдеги кызматтын түрү, ал жогору приоритетке ээ жана колдонуучу көрө алат. Ал колдонуучу үчүн байкалган жана батареяны үнөмдөө же эс тутумдун жетишсиздигинде үзгүлтүккө учурабаган тапшырмаларды аткарат.
Негизги өзгөчөлүктөрү:
- Туруктуу билдирүүнү билдирүү тилкесинде көрсөтөт. Колдонуучу кызмат иштеп жатканына көрө алат жана мүмкүн болсо, менен иштеше алат.
- Жүйө жогорку приоритетке ээ болгондуктан, кадимки фоновая кызматка караганда, ал көбүрөөк убакытка сакталат.
- Специальдүү уруксатты талап кылат
FOREGROUND_SERVICE. - Музыка ойнотуу, жайгашкан жерди көзөмөлдөө, реалдуу убакытта маалыматтарды синхрондоо сыяктуу тапшырмалар үчүн колдонулат.
Өмүр цикли:
startForegroundService()аркылуу ишке киргизилет.- 5 секунд ичинде
startForeground(notificationId, notification)чакырышы керек, башкача системасы кызматты токтотуп,ForegroundServiceDidNotStartInTimeExceptionчыгара алат. stopSelf()же башка компоненттенstopService()аркылуу, же колдонуучу тарабынан билдирүү аркылуу токтотулат. Токтотуу учурундаstopForeground(bool removeNotification)чакырышы керек, билдирүүнү алып салуу үчүн.
Ишке киргизүү мисалы:
// Уруксат алуу
ActivityCompat.requestPermissions(
this,
arrayOf(Manifest.permission.FOREGROUND_SERVICE),
REQUEST_CODE_FOREGROUND_SERVICE
)
// Уруксат алгандан кийин же ал мурда берилсе
val serviceIntent = Intent(this, MyForegroundService::class.java)
ContextCompat.startForegroundService(this, serviceIntent)
Кызматтын ичинде:
// MyForegroundService.kt
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
val notification: Notification = createNotification() // Билдирүү түзүүчү метод
startForeground(NOTIFICATION_ID, notification)
// Мында кызматтын иши башталат
return START_STICKY // же башка ылайыктуу флаг
}
override fun onDestroy() {
stopForeground(true) // Билдирүүнү жок кылуу
// Ресурстарды бошотуу
super.onDestroy()
}