public class BubblesTwo extends Activity {
/** Called when the activity is first created. */ private HandlerThread bubblesThread=new HandlerThread("BubblesThread");
private MyHandler myHandler;
private Button btn;
//private BubbleImageView iv1,iv2;
private Message msg;
private int x=128,y=350;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn=(Button)findViewById(R.id.btn);
bubblesThread.start();
myHandler=new MyHandler(bubblesThread.getLooper());
msg=myHandler.obtainMessage();
//用于控制泡泡数量
msg.arg1=0;
//用于控制泡泡路线
msg.arg2=0;
//msg.sendToTarget();
btn.setOnClickListener(new btnListenner());
}
class btnListenner implements OnClickListener{ @Override
public void onClick(View v) {
// TODO Auto-generated method stub
msg.arg1=msg.arg1+1;
msg.sendToTarget();
}
}
class MyHandler extends Handler{
ImageView iv1=(ImageView)findViewById(R.id.myImageView1),iv2=(ImageView)findViewById(R.id.myImageView2);
int x=128,y=350;
public MyHandler(){
}
public MyHandler(Looper looper){
super(looper);
}
@SuppressWarnings("deprecation")
@Override
public void handleMessage(Message msg) {
Log.i("JSY", "New Thread");
// iv1.setLayoutParams ( new AbsoluteLayout.LayoutParams (64,64,x,y) );
// iv2.setLayoutParams ( new AbsoluteLayout.LayoutParams (64,64,x,y) );
switch (msg.arg1)
{
case 1: {
iv1.setVisibility(View.VISIBLE);//错误在这里
Log.i("JSY", "34");
break;
}
case 2:{
iv1.setVisibility(View.INVISIBLE);
iv2.setVisibility(View.VISIBLE);break;
}
case 3:
case 4:
case 5:
case 6:
case 0:{
}
}
switch (msg.arg2)
{case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
}
}
}
}
错误信息如下
放在onCreate里
你可以打印下Thread.currentThread().getId()线程ID,你更新UI是在线程中进行的。