Java 吐司罐头';不能在新的runnable中使用?
作为标题,我在runnable中使用toast,但有一个错误 我的代码: 您不能使用来自其他线程的祝酒词(或任何在UI上显示内容的内容)Java 吐司罐头';不能在新的runnable中使用?,java,android,Java,Android,作为标题,我在runnable中使用toast,但有一个错误 我的代码: 您不能使用来自其他线程的祝酒词(或任何在UI上显示内容的内容) 请参见您不能在其他线程中直接使用toast,但有一个解决方案 你创建了你的msgHandler mHandler = new Handler() { @Override public void handleMessage(Message msg) { String mString=(Strin
请参见您不能在其他线程中直接使用toast,但有一个解决方案 你创建了你的msgHandler
mHandler = new Handler() {
@Override public void handleMessage(Message msg) {
String mString=(String)msg.obj;
Toast.makeText(this, mString, Toast.LENGTH_SHORT).show();
}
};
之后,您将从线程传递消息
new Thread(new Runnable() {
@Override
public void run() {
while(!Thread.interrupted())
{
Message msg=new Message();
msg.obj="your text";
mHandler.sendMessage(msg);
try {
Thread.sleep(100);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
“有一个错误”。多好啊!能告诉我们是哪一个吗?错误消息是您的朋友!他们的存在不仅仅是为了缠着你!如果我只需要使用handler或其他方式,handler对于实现这个OnlyRunNuithRead来说很复杂,这是一个简单一点的方法,对我来说很有用。
new Thread(new Runnable() {
@Override
public void run() {
while(!Thread.interrupted())
{
Message msg=new Message();
msg.obj="your text";
mHandler.sendMessage(msg);
try {
Thread.sleep(100);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();