踩了一个坑,简单记录
大致流程:
1。点击viewHolder里的btn,
2。调用viewModel的一个方法,
3。该方法调用sdk的一个接口,
4。该接口通过一个callback返回数据,
5。无论请求成功与否,都在callback里发送event,
6。viewHolder接收event,
7。消费该事件,show toast对用户进行展示,
(代码是工作代码,就不展示了,逻辑很简单)
--
问题在,这个toast show不出来。debug调试,toast的部分全都正常,没有catch crash等操作。
草,打印出来,show toast 的线程是子线程-》这就是 无法显现的原因。
我当时的逻辑是,1234都是在主线程,5应该也是主线程,67应该也是主线程
干扰项是7,里面有还有 setImageView更换图标-》这个成功了
所以我想当然的都以为是主线程的操作,不然setImageView应该会crash掉。
切换到主线程就能正常show toast了。
launch,Dispatcher.main