

Handler myHandler = new Handler(){
public void handleMessage(Message msg){ //接收到消息后进行处理
switch(msg.what){
case REFRESH:
mGameView.invalidate();//不可以在线程中使用
break;
}
super.handleMessage(msg);
}
};
class GameThread implements Runnable{
public void run(){
while(!Thread.currentThread().isInterrupted()){
Message message=new Message();
message.what=REFRESH;
myHandler.sendMessage(message);//发送消息
try {
Thread.sleep(100);
} catch (Exception e) {
Thread.currentThread().interrupt();
}
}
}
public void handleMessage(Message msg){ //接收到消息后进行处理
switch(msg.what){
case REFRESH:
mGameView.invalidate();//不可以在线程中使用
break;
}
super.handleMessage(msg);
}
};
class GameThread implements Runnable{
public void run(){
while(!Thread.currentThread().isInterrupted()){
Message message=new Message();
message.what=REFRESH;
myHandler.sendMessage(message);//发送消息
try {
Thread.sleep(100);
} catch (Exception e) {
Thread.currentThread().interrupt();
}
}
}
}
也可以不需要Handler接收消息,而通过下面的方式进行更新UI界面。
class GameThread implements Runnable{
public void run(){
while(!Thread.currentThread().isInterrupted()){
try {
Thread.sleep(100);
} catch (Exception e) {
Thread.currentThread().interrupt();
}
mGameView.postInvalidate();
}
}
}
while(!Thread.currentThread().isInterrupted()){
try {
Thread.sleep(100);
} catch (Exception e) {
Thread.currentThread().interrupt();
}
mGameView.postInvalidate();
}
}
}