Код: Выделить всё
fun postMessage(request: Request) {
CoroutineScope(Dispatchers.IO).launch {
val requestHandler = getRequestHandler(request)
requestHandler.handleRequest()
}
}
Вот пример трассировки:
Код: Выделить всё
FATAL EXCEPTION: DefaultDispatcher-worker-1
Process: com.mywebapp.app, PID: 14902
java.lang.RuntimeException: Can't create handler inside thread Thread[DefaultDispatcher-worker-1,5,main] that has not called Looper.prepare()
Я также пробовал создать HandlerThread:
Код: Выделить всё
class MyDispatcher {
val handlerThread = HandlerThread("myThread").apply {
start()
}
val handler = Handler(handlerThread.looper)
val coroutineDispatcher = handler.asCoroutineDispatcher()
}
Код: Выделить всё
val dispatcher = MyDispatcher()
CoroutineScope(dispatcher.coroutineDispatcher).launch {
//....
}
Я хочу добиться настоящего параллелизма здесь, в Dispatchers. IO предоставит нам.
И как мне решить эту проблему?
Подробнее здесь: https://stackoverflow.com/questions/786 ... atchers-io
Мобильная версия