我得到的HTML具有针对词汇表条目的自定义标签,例如:
和
我当时以为可以自动将其替换为CoroutineContext
,但是它没有按预期运行。
根据到目前为止的答案,我已经对此进行了一些修改
class LifecycleCrScope : CoroutineScope, LifecycleObserver {
private var _ctx: CoroutineContext? = null
override val coroutineContext: CoroutineContext
get() = _ctx!! // throws when not within scope
private fun startScope() {
_ctx = Dispatchers.Main + Job()
}
private fun endScope() {
_ctx!![Job]!!.cancel() // throws only when misused, e.g. no startScope()
_ctx = null
}
@OnLifecycleEvent(ON_RESUME) // <-.
fun resume() { // | Beware:
startScope() // | symmetric but no scope
} // | during onCreate,
// | onStart, onStop, ...
@OnLifecycleEvent(ON_PAUSE) // <-.
fun pause() {
endScope()
}
}
所以这行得通,但是我敢肯定必须有一种更优雅的方式来做到这一点。