作为标题,我在runnable中使用toast但我的代码有错误:
public Runnable backgroud=new Runnable(){
public void run() {
// TODO Auto-generated method stub
try
{
while(!Thread.interrupted())
{
String msg="this is a test";
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
Thread.sleep(1000);
}
}
catch(InterruptedException c)
{
c.printStackTrace();
}
}
};
Run Code Online (Sandbox Code Playgroud)
你不能直接在其他线程中使用toast,但有一个解决方案,你创建你的msgHandler
mHandler = new Handler() {
@Override public void handleMessage(Message msg) {
String mString=(String)msg.obj;
Toast.makeText(this, mString, Toast.LENGTH_SHORT).show();
}
};
Run Code Online (Sandbox Code Playgroud)
之后,您从线程传递消息
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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4247 次 |
| 最近记录: |