Closed RebornQ closed 7 months ago
runMain 目前每次在子线程调用都会创建一个匿名 Handler 对象
https://github.com/liangjingkanji/Net/blob/master/net/src/main/java/com/drake/net/utils/Suspend.kt
fun runMain(block: () -> Unit) { if (Looper.myLooper() == Looper.getMainLooper()) { block() } else { Handler(Looper.getMainLooper()).post { block() } } }
改成以下方式是否会更好?
val mainThreadHandler by lazy { Handler(Looper.getMainLooper()) } fun runMain(block: () -> Unit) { if (Looper.myLooper() == Looper.getMainLooper()) { block() } else { mainThreadHandler.post { block() } } }
在接入讯飞一个 SDK 时,在其 Demo 中看到 mainThread { } 方法的实现的时候,想起了 Net 的 runMain 方法
mainThread { }
无需复现
fork仓库并复现问题可以快速解决, 猜测只会让问题晦涩难懂, 耽误所有人时间
异常堆栈信息或者手机截图/视频(拖拽到输入框即可上传)
的确更好, 该优化建议由你发起你想发起Pr请求吗?
好,已 PR
问题描述
runMain 目前每次在子线程调用都会创建一个匿名 Handler 对象
期望行为
改成以下方式是否会更好?
如何复现
无需复现
截图
异常堆栈信息或者手机截图/视频(拖拽到输入框即可上传)
版本