Android的invalidate与postInvalidate都是用来刷新界面的,用法区别在于:

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

// 在onCreate()中开启线程new Thread(new GameThread()).start();

// 实例化一个handlerHandler 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();      }    }  }}

  2)使用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();    }  }}

--------------------------------------------------------------------

PS: 欢迎关注公众号"Devin说",会不定期更新Java相关技术知识。

--------------------------------------------------------------------

Android界面刷新相关推荐

  1. Android 屏幕刷新机制

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 这次就来梳理一下 Android 的屏幕刷新机制,把我这段时间因为研究动画而梳理出来的一些关于屏幕刷新方面的知识点分享出来,能力有限 ...

  2. Android 界面介绍与绘制优化

    Andorid用户界面框架 Android的用户界面框架(Android UI Framework)采用MVC(Model-View-Controller)模型,为用户界面提供了处理用户输入的控制器( ...

  3. Android界面生成流程:WindowManager和Window的关系

    WindowManager和Window添加View的区别 WindowManager中有个添加View的函数: public void addView(View view, ViewGroup.La ...

  4. Android渲染画面,Android界面渲染优化

    上篇介绍了android界面渲染主要是Display的过程,只要在一个时间段也就是16ms中,CPU和GPU不能正常处理完数据就会产生卡顿. 而 CPU(中央处理器) :多缓存多分支,适用于复杂的逻辑 ...

  5. 【屏幕刷新】Android 屏幕刷新机制

    显示系统基础知识 在一个典型的显示系统中,一般包括CPU.GPU.Display三个部分, CPU负责计算帧数据,把计算好的数据交给GPU, GPU会对图形数据进行渲染,渲染好后放到buffer(图像 ...

  6. Android屏幕刷新机制—VSync、Choreographer-全面理解

    2.2.3 VSync 问题又来了:什么时候进行两个buffer的交换呢? 假如是 Back buffer准备完成一帧数据以后就进行,那么如果此时屏幕还没有完整显示上一帧内容的话,肯定是会出问题的.看 ...

  7. “终于懂了” 系列:Android屏幕刷新机制—VSync、Choreographer 全面理解!

    文章目录 一.背景和疑问 二.显示系统基础知识 2.1 基础概念 2.2 双缓存 2.2.1 画面撕裂 原因 2.2.2 双缓存 2.2.3 VSync 三.Android屏幕刷新机制 3.1 And ...

  8. 从Android界面开发谈起(转)

    原文地址:http://blog.csdn.net/nieweilin/article/details/5967815 这篇文章没有打算有一个很好的逻辑去介绍android的某个方面,全盘大致上就是我 ...

  9. android开发重要控件,Android界面编程——Android基本控件

    Android界面编程 Android应用开发的一项重要内容就是界面开发.对于用户来说,不管APP包含的逻辑多么复杂,功能多么强大,如果没有提供友好的图形交互界面,将很难吸引最终用户. 作为一个程序员 ...

最新文章

  1. windows桌面待办事项_记录在电脑便签中的内容怎么在电脑桌面显示透明日历清单?...
  2. 使用 Docker 部署 Spring Boot 项目
  3. 为多网络请个“交警”
  4. 在linux上实现DllMain + 共享库创建方法
  5. 浏览器登录_经常用浏览器自动登录忘记了密码?教你一键查看网页星号密码
  6. android 日期对话框,Android日期选择器对话框DatePickerDialog使用详解
  7. QingStor NeonSAN跻身四强 新风口下的青云QingCloud正在厚积薄发
  8. 6-2-1:STL之string——string的快速入门、常用接口
  9. SpringBoot应用场景启动器
  10. 报送数据标准校验java_Java:数据校验 - osc_gaqp1a2z的个人空间 - OSCHINA - 中文开源技术交流社区...
  11. 控制台怎么查看错误的详细信息_js错误处理,quot;try..catchquot;
  12. 【算法】java 用 数组 模拟 队列
  13. Cilium:BPF和XDP参考指南
  14. 不仅仅于 Json和XML ,快来学习Google出品的序列化神器Protocol Buffer
  15. pyqt5-QFrame边框样式
  16. 自己整理的几个免费的李炎恢php实战开发教程
  17. Tableau实现世界GDP排名动态图
  18. html 爱心树,jQuery结合HTML5制作的爱心树表白动画
  19. 对话系统-“任务型”多轮对话(二):对话状态追踪(DST)【基于规则;基于模型】【输入:当前意图和槽值对+历史槽值对;输出:State(槽值对集合)或State Vector 】【为DP做数据准备】
  20. java.lang.OutOfMemoryError:GC overhead limit exceeded解决方法

热门文章

  1. 关于如何去寻找自己的另一半和我的爱情观
  2. 使用路由器中碰到的问题总结
  3. VLC捕获网络摄像头视频(rtsp协议)
  4. 飞机荷兰滚产生原因、受力分析、解决方法
  5. android手机系统怎么刷机包,安卓系统的手机如何刷机
  6. 推荐系统与深度学习(一)开端
  7. 首个活体机器人诞生:青蛙细胞生成,超级计算机设计,外媒:毛骨悚然
  8. 百度搜索框怎么用HTML做,百度搜索框的基本实现
  9. 计算机图形学----SDF介绍
  10. 原生html+css+javascript仿写的静态华为商城网页