android Toast提示异常:java.lang.RuntimeException: Can't create handler inside thread that has not called

Toast只能在UI线程弹出,解决此问题可以在Toast前后加两行代码,如下所示:

Looper.prepare();
Toast.makeText(getApplicationContext(),"操作失败:"+r.Message,Toast.LENGTH_LONG).show();
Looper.loop();

比如:

runOnUiThread(new Runnable() {
	@Override
	public void run() {
	//加上之前说的代码
	}
});
//或者
new Thread(new Runnable() {
	@Override
	public void run() {
	//加上之前说的代码
	}
}).start();

错误记录

在Android中不允许Activity里新启动的线程访问该Activity里的UI组件

所有的更新UI操作都需要在主线程(也就是UI线程中完成),而不能在新开的子线程中操作。

更新界面的操作应该在主线程(UI线程)

Dialog是在UI线程的,子线程不能操作,按错误提示先调用Looper.prepare(),完了之后调用Looper.loop()方法就可以。

现在有很多方法可以支持。

参考

https://cloud.tencent.com/developer/ask/55465

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注