昨天下午做测试发现软件崩掉了,由于没有log,我只能看看代码,逻辑上没问题,只有view可能出现问题,但是没法确定,今天模拟环境测试了一下,果然是这个问题。
这种问题大多数发生在回调线程中,这主要是Android的相关View和控件不是线程安全的,简单的说,给个独立子线程或者让他跑在UI线程上就可以了
报错为:
Only the original thread that created a view hierarchy can touch its views
通常解决方案为:
private void showToast(final String msg) {
THIS.runOnUiThread(new Runnable() {
@Override
public void run() {
T.showLong(THIS, msg);
}
});
}
private void showText(final String msg) {
THIS.runOnUiThread(new Runnable() {
@Override
public void run() {
mShowText.setText(msg);
}
});
}
网友评论