Я изучаю Kotlin и в то же время пытаюсь написать простое приложение. На самом деле, у меня проблема с Timer()
, потому что, когда я включаю switch1
, приложение вылетает во второй раз и пишет:
Timer is already cancelled.
Мне нужно остановить таймер, когда switch1
срабатывает и когда switch1
идет снова включен, таймер должен начать отсчет сначала. Возможно, мне придется реализовать это по-другому, но я не знаю, как это сделать.
Пожалуйста, помогите и прошу прощения за мой Engli sh.
import android.graphics.Color
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
import java.util.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val timer = Timer()
switch1.setOnCheckedChangeListener { switch1, isChecked ->
if (isChecked) {
root_layout.setBackgroundColor(Color.GREEN)
timer.schedule(object : TimerTask() {
override fun run() {
println("dfvffv")
} }, 2000, 2000)
} else {
root_layout.setBackgroundColor(Color.LTGRAY)
timer.cancel()
}
}
}
}