Andoid
文章平均质量分 91
不踢足球的王大雷
比能力更重要的,是态度和责任感!
展开
-
Android中View的事件分发机制
见过太多的讲解View事件分发机制的博客和文章,绝大多数都是从源码层次讲解,枯燥乏味又让初学者望而生畏,而且不方便记忆。 今天在月的任玉刚先生的《Android开发艺术探索》一书中的有关View的事件分发机制章节,伪代码的讲解形式顿时让人对”View的事件分发机制”有醍醐灌顶之神效,故将该章节的内容摘抄给大家供参考。1.点击事件的传递规则 所谓的点击事件的事件分发,其实就是对MotionEven翻译 2016-01-24 17:18:11 · 518 阅读 · 0 评论 -
Android事件分发机制源码剖析(2)—顶层View对点击事件的分发过程
点击事件到达顶层View(一般是一个ViewGroup)以后,会调用ViewGroup的dispatchTouchEvent方法,然后逻辑是这样的:如果顶层ViewGroup拦截事件,即onInterceptTouchEvent返回true,则事件交由ViewGroup处理,这时如果ViewGroup的mOnTouchListener被设置,则onTouch会被调用,否则onTouchEvent会被原创 2016-03-13 15:39:00 · 573 阅读 · 3 评论 -
Android事件分发机制源码剖析(1)——Activity对点击事件的分发过程
点击事件用MotionEvent表示,当一个点击操作发生时,事件最先传递给当前的Activity,由Activity得dispatchTouchEvent来进行事件派发,具体的工作由Activity内部的Window来完成。Window会将事件传递给DecorView,DecorView一般就是当前页面的顶层容器(即setContentView所设置的View的父容器),通过Acitivty#get原创 2016-03-13 14:28:55 · 621 阅读 · 0 评论 -
Android中两种序列化方式的比较Serializable和Parcelable
Serializable和Parcelable接口可以完成对象的序列化过程,当我们需要通过Intent和Binder传输数据时就需要使用者两种序列化方式。还有,我们需要对象持久化到存储设备或者通过网络传输给其他客户端,这个使用也需要使用Serializale来完成对象的序列化。在Android应用开发中,这两种方式都很常见,但两者方式并不相同。1.Serializable接口Serializable原创 2016-05-08 13:33:55 · 21286 阅读 · 3 评论 -
Android中的线程池ThreadPoolExecutor
提到线程池就必须先说一下使用线程池的好处:1.重用线程池中的线程,避免因为线程的创建和销毁所带来的性能开销;2.能有效控制线程池的最大并发数,避免大量的线程之间因相互抢占系统资源而导致的阻塞现象;3.能够对线程进行简单的管理,并提供定时执行以及制定事件间隔循环执行等功能。Android中的线程池的概念来源于Java中的Executor,Executor是一个接口,真正的线程池的实现为Thre原创 2016-06-10 13:11:14 · 709 阅读 · 0 评论 -
使用IntentService解决点我达骑手APP消息提醒机制中的优先级排序问题
最新版的点我达骑手APP对新订单消息提醒、订单信息被修改、新的可抢订单等声音及制动提醒做出了规范和优化,加入了消息提醒(包括声音及振动提醒)优先级机制,即在优先级较高的声音在播放过程中有优先级较低的声音插入播放队列,则忽略优先级较低的声音不进行播放;优先级较低的声音在播放过程中有优先级较高的声音插入播放队列,则在优先级较低的声音播放结束后再对插入的优先级较高的声音进行播放。本文从如何更安全高效的执行原创 2016-11-01 16:56:10 · 2310 阅读 · 0 评论 -
跨平台基础网络框架Mars初探
前言对于新派单通知、订单时效变更通知等需要及时反馈给用户的消息,目前点我达骑手的解决方案是定时轮询并通过http请求的方式主动从服务器获取变更,这种方式存在一定的缺陷,如http方式轮询流量消耗较高、消息通知不及时等。随着订单量和活跃用户量的急剧增加,这种轮询方式的弊端也逐渐显现出来,需要一种能够及时发送消息且流量消耗较低、弱网环境表现优异的方案替代现有轮询方案,那就是Socket长连接的方式...原创 2018-02-23 16:43:27 · 1733 阅读 · 0 评论