演讲前,AsyncTask文章.我们在最后谈到.AsyncTask它是利用Handler异步消息处理机制,操作结果.使用Message回到主线程,从而执行UI更新线程. 而在我们的日常开发工作,Handler一类是经常使用在我们中间,然后Handler的主要作用是什么? Handler 的主要作用就是对消息(消息能够是我们想做的一些UI更新,也能够是其它的一些不可见的操作,如操作数据库等)的异步处理机制.而相信大家都了解异步的概念. 简单地说一下: 1)从程序的角度来看,就是当运行某行代码的时候…
在开始这篇文章之前,.首先,我们在总结前两篇文章Handler, Looper和MessageQueue像一些关键点: 0)在创建线程Handler之前,你必须调用Looper.prepare(), 创建一个线程局部变量Looper,然后调用Looper.loop() 进入轮循. 1)当Handler创建之后,就能够调用Handler的sendMessageAtTime方法发送消息.而实际上是调用MessageQueue的enqueueMessage方法.将相应的消息放入消息队列. 2)每个线程…
在第二篇文章<Android中利用Handler实现消息的分发机制(一)>中,我们讲到主线程的Looper是Android系统在启动App的时候,已经帮我们创建好了,而假设在子线程中须要去使用Handler的时候,我们就须要显式地去调用Looper的 prepare方法和loop方法,从而为子线程创建其唯一的Looper. 详细代码例如以下: class LooperThread extends Thread { public Handler mHandler; public void run…
1.VCL 概貌 先看一下VCL类图的主要分支,如图4.1所示.在图中可以看到,TObject是VCL的祖先类,这也是Object Pascal语言所规定的.但实际上,TObject以及TObject声明所在的system.pas整个单元,包括在“编译器魔法”话题中提到的_ClassCreate等函数,都是编译器内置支持的.因此,无法修改.删除system.pas中的任何东西,也无法将system.pas加入你的project,否则会得到“Identifier redeclared ‘syste…
***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************** 题外话: 唉. 开学了!    好烦. 这就已经大三了, 两年前的这时候,我还是懵懂的大一小学弟, 两年后.就要奔上社会就业了. 光阴似箭.日月如梭呀~ 正文: 好久没做cocos2d-x了,这次练习一下.屏幕触摸及消息分发机制. 这里,我用的是cocos2d-…
Android 中针对耗时的操作,放在主线程操作,轻者会造成 UI 卡顿,重则会直接无响应,造成 Force Close.同时在 Android 3.0 以后,禁止在主线程进行网络请求. 针对耗时或者网络操作,那就不能在主线程进行直接操作了,需要放在子线程或者是工作线程中进行操作,操作完成以后,再更新主线程即 UI 线程.这里就涉及到一个问题了,在子线程执行完成以后,怎么能更新到主线程即 UI 线程呢,针对以上问题,就需要用到 Android 的消息机制了,即: Handler, Message…
android事件分发机制,给控件设置ontouch监听事件,当ontouch返回true时,他就不会走onTouchEvent方法,要想走onTouchEvent方法只需要返回ontouch返回false即可,特别注意的是按钮都是默认可以点击的,当使用imageview设置ontouch监听时,要想onTouchEvent不走,必须保证,imageview是可以点击的,第二onTouch返回true!当onTouchEvent开始执行时会onTouch优先于onTouchEvent优先于onc…
转自:秋招面试宝典. 一. 基础认知 1.1 事件分发的对象是谁? 答:事件 当用户触摸屏幕时(View或ViewGroup派生的控件),将产生点击事件(Touch事件). Touch事件相关细节(发生触摸的位置.时间.历史记录.手势动作等)被封装成MotionEvent对象 主要发生的Touch事件有如下四种: MotionEvent.ACTION_DOWN:按下View(所有事件的开始) MotionEvent.ACTION_MOVE:滑动View MotionEvent.ACTION_CA…
转自 http://blog.csdn.net/xiaoxian8023/article/details/48681987 上一篇博文中简单介绍了一下RabbitMQ的基础知识,并写了一个经典语言入门程序——HelloWorld.本篇博文中我们将会创建一个工作队列用来在工作者(consumer)间分发耗时任务.同样是翻译的官网实例. 工作队列 在前一篇博文中,我们完成了一个简单的对声明的队列进行发送和接受消息程序.下面我们将创建一个工作队列,来向多个工作者(consumer)分发耗时任务. 工作…
上一篇文章,我们谈到了电话Handler的sendMessage方法,最后,我们将进入一个电话 sendMessageAtTime方法,例如下列: public boolean sendMessageAtTime(Message msg, long uptimeMillis) { MessageQueue queue = mQueue; if (queue == null) { RuntimeException e = new RuntimeException( this + " sendMes…