Как я могу остановить выполнение FixedRateTimer () в Kotlin с помощью кнопки? - PullRequest
0 голосов
/ 15 апреля 2020

Мне нужна помощь, чтобы достичь чего-то простого. Мой код выглядит так:

 class HomeActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)


        repeatAction()

        val stoprepeat = findViewById(R.id.btn) as Button
        stoprepeat.setOnClickListener{
             // I need to completely stop the actions that are repeating from here 
        }


    }
   private fun repeatAction(){
      var repeataction = FixedRateTimer("mytimer",false,2400,20000){
            this@HomeActivity.runOnUiThread {
                   // Stuff to repeat (3 or 4 actions)
            }
      }
   } 
}

Что я пытаюсь сделать, это остановить задачи FixedTimeRate, когда я нажимаю на кнопку. Кроме того, есть ли способ предотвратить сбой приложения fixedRateTimer после 10 минут работы?

1 Ответ

0 голосов
/ 15 апреля 2020

как насчет введения var keepRunning: Boolean = true в HomeActivity, которое проверяется каждый цикл с помощью repeatAction() ie. while(keepRunning){ ... } и устанавливается на false с помощью stoprepeat.setOnClickListener?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...