Invalidate和postInvalidate的区别
来源:互联网 发布:java ee插件下载 编辑:程序博客网 时间:2024/06/05 09:58
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。
Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。
View 类中postInvalidate()方法源码如下,可见它也是用到了handler的:
public void postInvalidate() {
postInvalidateDelayed(0);
}
public void postInvalidateDelayed(long delayMilliseconds) {
// We try only with the AttachInfo because there's no point in invalidating
// if we are not attached to our window
if (mAttachInfo != null) {
Message msg = Message.obtain();
msg.what = AttachInfo.INVALIDATE_MSG;
msg.obj = this;
mAttachInfo.mHandler.sendMessageDelayed(msg, delayMilliseconds);
}
}
- Invalidate和postInvalidate的区别
- Invalidate和postInvalidate的区别
- invalidate()和postInvalidate() 的区别
- Invalidate和postInvalidate的区别
- Invalidate和postInvalidate的区别
- Invalidate和postInvalidate的区别
- Invalidate和postInvalidate的区别
- Invalidate和postInvalidate的区别
- invalidate和PostInvalidate的区别
- Invalidate和postInvalidate的区别
- invalidate和postInvalidate的区别
- Invalidate和postInvalidate的区别
- Invalidate和postInvalidate的区别
- Invalidate和postInvalidate的区别
- invalidate和postInvalidate的区别
- invalidate和postInvalidate的区别
- Invalidate和postInvalidate的区别
- invalidate()和postInvalidate() 的区别
- js 动态修改css文件
- POJ 1502 MPI Maelstrom 单源最短路 Floyd Dijkstra
- 定时任务 crontab 详细解释
- hdu1160,FatMouse's Speed
- 电容触摸屏驱动---基于FT5406
- Invalidate和postInvalidate的区别
- 黑马程序员_12_高新技术之反射
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十二) Java NIO与IO
- POJ 1159--Palindrome(回文序列)
- Codeforces Round #250 (Div. 2) -B. The Child and Set
- subprocess子进程的杀死
- NYOJ 269--VF
- 我的《C陷阱与缺陷》读书笔记