我正在创建一个线程并在我的一个方法中启动它,在睡眠之后,应用程序才关闭:s 不明白为什么..任何线索? 这是我的代码:
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
if(!toggleRemove){
grupo.increment();
vibrate();
}else
grupo.decrement();
showToPanel(grupo);
new Thread(){
public void run(){
try {
sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
showToPanel(null);
}
}.start();
}
});
提前多多谢谢!!
使用它来修复它:
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
if(!toggleRemove){
grupo.increment();
vibrate();
}else
grupo.decrement();
showToPanel(grupo);
new Handler().postDelayed(new Runnable(){
@Override
public void run(){
showToPanel(null);
}
}, 3000);
}
});
答案 0 :(得分:2)
发布崩溃的错误时请发布完整的堆栈跟踪。但我的猜测是showToPanel对UI进行了更改?如果是这样,你不能在另一个线程上执行此操作,必须在主线程上执行此操作。执行此操作的最佳方法是将延迟消息发布到处理程序并更改其中的UI,因为除了在另一个线程上执行睡眠之外没有其他真正的工作。