利用Handler刷新界面

实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面刷新;而在线程中通过sendMessage发送界面更新消息。

代码如下:
// 在onCreate()中开启线程
new Thread(new GameThread()).start();

// 实例化一个handler
Handler myHandler = new Handler() {
 //接收到消息后处理
 public void handleMessage(Message msg) {
  switch (msg.what) {
  case Activity01.REFRESH:
   mGameView.invalidate();//刷新界面
   break;
  }
  super.handleMessage(msg);
 }                 
};

class GameThread implements Runnable {
 public void run() {
     while (!Thread.currentThread().isInterrupted()) {
         Message message = new Message();
            message.what = Activity01.REFRESH;
            //发送消息
            Activity01.this.myHandler.sendMessage(message);
            try {
             Thread.sleep(100);
            }
            catch (InterruptedException e) {
             Thread.currentThread().interrupt();
            }
  }
 }
}

使用postInvalidate()刷新界面

使用postInvalidate则比较简单,不需要handler,直接在线程中调用postInvalidate即可。

代码如下:
class GameThread implements Runnable {
 public void run() {
  while (!Thread.currentThread().isInterrupted()) {
   try {
    Thread.sleep(100);
   }
            catch (InterruptedException e) {
    Thread.currentThread().interrupt();
   }   // 使用postInvalidate可以直接在线程中更新界面
   mGameView.postInvalidate();
  }
 }
}

更多相关文章

  1. Android(安卓)8.1.0 SystemUI 修改之 - 系统锁屏状态下点击用户
  2. Android软件开发之常用系统控件界面整理
  3. Android中SurfaceView用法简单实例
  4. Android(安卓)中SwipeRefreshLayout刷新动画不显示的问题
  5. Androd学习笔记—— Android刷新本地相册
  6. 解决方案:公众号h5页面开发时微信自带返回按钮,不刷新问题。
  7. Android面试复习汇总
  8. Android(安卓)Studio 点击按钮跳转新界面
  9. 多线程在Android中应用

随机推荐

  1. android中dom解析
  2. android:网络编程
  3. android Activities
  4. Exploring RxJava 2 for Android
  5. Android(安卓)NDK Stable APIs
  6. android 获取硬件的ID
  7. Spinner2
  8. Android(安卓)ADT Bundle(Eclipse with AD
  9. MP3Player2.0版本
  10. OSC android app LayoutParams改进