tt_mc

导航

2012年1月30日 #

android中Invalidate和postInvalidate的区别

摘要: Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。 1,利用invalidate()刷新界面 实例化一个Han... 阅读全文

posted @ 2012-01-30 15:08 tt_mc 阅读(54915) 评论(3) 推荐(5) 编辑

Android Looper和Handler

摘要: Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。 Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。 MessageQueue:消息队列,用来存放Handler发送过来的消息,并按照FIFO规则执行。当然,存放Message并非实际意义的保存,而是将Message以链表的方式串联起来的,等待Looper的抽取。 Looper:消息泵,不断地从MessageQueue... 阅读全文

posted @ 2012-01-30 14:09 tt_mc 阅读(49247) 评论(5) 推荐(14) 编辑