android中相关的view和控件不是线程安全的,我们必须单独做处理。这里借此引出Handler的使用。
//出现CalledFromWrongThreadException
@Override
public void channelRead(final ChannelHandlerContext ctx, Object msg) throws Exception {
super.channelRead(ctx, msg);
EventBus.getDefault().post(new SMessage);
}
//使用handler完美解决(或者使用广播解决UI更新的问题)
@Override
public void channelRead(final ChannelHandlerContext ctx, Object msg) throws Exception {
super.channelRead(ctx, msg);
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
EventBus.getDefault().post(sMessage);
}
});
}
在Android中,直接从非主线程操作UI会抛出CalledFromWrongThreadException异常。文章通过示例展示了如何使用Handler(或广播)来确保在主线程更新UI,以此解决线程安全问题。
417

被折叠的 条评论
为什么被折叠?



