【Android】invalidate和postInvalidate的区别
来源:互联网 发布:cn和com域名区别 编辑:程序博客网 时间:2024/05/28 17:06
invalidate()是用来刷新View的,必须是在UI线程中进行工作。比如在修改某个view的显示时,调用invalidate()才能看到重新绘制的界面。invalidate()的调用是把之前的旧的view从主UI线程队列中pop掉。
使用:
实例化一个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()在工作者线程中被调用。
0 0
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中Invalidate和postInvalidate的区别
- android中invalidate()和postInvalidate()的区别
- Android中自定义属性attr.xml的格式详解
- struts2中通过Action以InputStream的下载文件以及在iOS以及Android端接收的实现方式
- 浅读HDFS文件上传部分的过程源码
- 大数据痛点:政府部门不会轻易放开掌握的数据
- 网络程序设计基础
- 【Android】invalidate和postInvalidate的区别
- Windows/Mac下 Eclipse中最常用的热键
- CSS3图片倒影技术
- [Android] 录音与播放录音实现
- TCP滑动窗口机制
- iOS--软件测试
- 集合类型要用IS TABLE OF来定义,表示是一个集合。
- ngrok.net 国内ngrok资源网
- size_t类型总结