0

好吧,我想用 setBackground() 设置一个按钮,但是在这次更新之后,我想在 500 毫秒时让线程休眠,并且在同一个按钮上设置另一个背景之后,所有这些都在一个 onTouch 方法中。例子

public boolean onTouch(View v,MotionEvent event){
switch(event.getAction()){
case MotionEvent.ACTION_UP:
   button.setBackground(R.drawable.bckg1);
   try{
      Thread.sleep(500);
      button.setBackground(R.drawable.bckg2);
   }catch(Exception e){}
   break;
}
4

1 回答 1

0

您永远不应该让主 (UI) 线程休眠。android 线程模型有两个规则 1)不要阻塞主线程超过 5 秒(否则你会得到一个 App Not Responding 崩溃)2)不要从主线程操作 UI。即使你只睡了 500 晚,你也试图违反这些规则中的第一条。

相反,使用处理程序并在 5000 毫秒处发布延迟的可运行对象,然后在可运行对象内部更新按钮的背景。

于 2012-07-26T04:57:14.000 回答