у меня есть сопрограмма, осведомленная о жизненном цикле
abstract class AppViewModel : ViewModel(), CoroutineScope {
private val job = Job()
override val coroutineContext: CoroutineContext
get() = Dispatchers.Main + job
override fun onCleared() {
super.onCleared()
job.cancel()
}
}
если я использую в моей модели представления
launch {
}
вызывает нарушение диска
D / StrictMode: нарушение политики StrictMode; ~ длительность = 200 мс: android.os.strictmode.DiskReadViolation
в этой строке
get() = Dispatchers.Main + job
что я делаю не так?
EDIT
Я создал другой пример, и эта ошибка все еще существует
class MainActivity : AppCompatActivity(), CoroutineScope {
protected val job = SupervisorJob()
override val coroutineContext = Dispatchers.Main + job
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
launch {
val e = withContext(Dispatchers.Default) {
4
}
text.text = e.toString()
}
}
override fun onDestroy() {
super.onDestroy()
job.cancel()
}
}