CoroutineScope(Dispatchers.IO).launch {
while (true) {
val msg = Message()
msg.what = mediaPlayer.currentPosition
handler.sendMessage(msg)
delay(10)
}
}
}
@SuppressLint("HandlerLeak")
var handler = object : Handler(Looper.getMainLooper()) {
override fun handleMessage(msg: Message) {
val currentPosition = msg.what
// Update positionBar
positionBar.progress = currentPosition
// Update Labels
val elapsedTime = createTimeLabel(currentPosition)
elapsedTimeLabel.text = elapsedTime
val remainingTime = createTimeLabel(totalTime - currentPosition)
remainingTimeLabel.text = "-$remainingTime"
}
}
Вылетает с текстом positionBar must not be null, потому что происходит обращение к нему когда закрыт фрагмент уже. Как решить это? Думал дело в том, что я использовал Thread, а не Coroutines, но оказывается не в этом. Как решить? Спасибо.