Для тех, кто также изучает Kotlin Я также опубликую свое решение. Это выглядит довольно просто, однако, возможно, могло бы быть больше решений.
Я создал простой Kotlin объект, подобный:
object Trigger {
var triggerStop = 0
fun getTrigger(): Int{
return triggerStop
}
}
Как видите, переменная triggerStop
может быть изменена и вызывается с функцией getTrigger()
Поэтому я добавил этот объект в MainActivity для кнопок setOnClickListeners:
class MainActivity : AppCompatActivity() {
lateinit var i:Intent
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
i = Intent(this, IntentServiceExample::class.java)
buttonStart.setOnClickListener{
Trigger.triggerStop = 0 // this variable will be checked in IntentService
startService(i)
}
buttonEnd.setOnClickListener{
Trigger.triggerStop = 1 // this variable will be checked in IntentService
stopService(i)
}
}
}
Затем я поместил этот объект в свой IntentService. В oop о том, что я хочу остановить взаимодействие с пользователем, я поставил галочку, как в ответе @ Watachiaieto.
fun counter(bc: Intent){
for (i in 1..100){
val stopIt = Trigger.getTrigger() // get trigger value
if (stopIt == 1) {
break
}
bc.putExtra(PARAM_OUT_MSG, i.toString())
Thread.sleep(1000)
sendBroadcast(bc)
}
}