Объясните по поводу работы сервиса, во время запуска приложения
Меня интересует, вот я сделал код. сервис например работает как музыкальный проигрыватель. В данном коде, что я написал, проблема такая - при нажатии на уведомление, сервис запускается заного, если это будет музыкальный плеер, то это же не правильная работа, а как сделать, чтобы сервис работал постоянно или как нужно правильно в таком случае делать?
package com.xverizex.service
import android.app.*
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.os.ResultReceiver
import android.util.Log
import android.widget.ThemedSpinnerAdapter
import android.widget.Toast
import androidx.core.app.JobIntentService
val JOB_ID : Int = 1000;
fun enqueueWork(context: Context, work: Intent) {
JobIntentService.enqueueWork(context, SimpleJobIntentService::class.java, JOB_ID, work)
}
class SimpleJobIntentService : JobIntentService() {
var handler = Handler(Looper.myLooper()!!)
override fun onHandleWork(intent: Intent) {
toast ("Executing: back")
for ( i in 0 .. 10 ){
try {
Thread.sleep(1000)
} catch (ex : InterruptedException) {
}
}
handler.post {
val nm = getSystemService(Service.NOTIFICATION_SERVICE) as NotificationManager
val intent = Intent(this, MainActivity::class.java).apply {
flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
}
val pendingIntent : PendingIntent = PendingIntent.getActivity(this,0,intent,0)
val importance = NotificationManager.IMPORTANCE_DEFAULT
val channel = NotificationChannel("test","test", importance).apply {
description = "for test app"
}
nm.createNotificationChannel(channel)
val builder = Notification.Builder(this,"test")
.setSmallIcon(R.drawable.ic_launcher_foreground)
.setContentTitle("hey")
.setContentText("what up?")
.setContentIntent(pendingIntent)
.setAutoCancel(true)
nm.notify(0, builder.build())
}
}
override fun onDestroy() {
super.onDestroy()
}
fun toast (text : CharSequence) {
handler.post {
Toast.makeText(this@SimpleJobIntentService, text, Toast.LENGTH_SHORT).show()
}
}
}