
最近在编写App
的时候,遇到了CalledFromWrongThreadException
异常,分享一个我的解决思路,希望对看文章的小伙伴有所启发。
错误全文
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
翻译:只有创建视图层次结构的原始线程才能触摸其视图。
出现的原因:子线程不能改变UI,要回到主线程当中修改。
runOnUiThread
我个人是用runOnUiThread
解决的,代码示例:
runOnUiThread{
// 这里写具体的业务代码
}
Handler
我个人看到网上有小伙伴用Handler
,我尝试过也是可以的,代码示例:
private val mHandler:Handler = Handler()
fun setUi(){
mHandler.post {
// 业务代码
}
}
网友评论