当前位置: 首页 > news >正文

免费素材网站设计淘宝网站是哪个公司做的

免费素材网站设计,淘宝网站是哪个公司做的,电子商务类型的网站,怎么样做网站Message中可以携带的信息 Message中可以携带的数据比较丰富#xff0c;下面对一些常用的数据进行了分析。 /*** 用户定义的消息代码#xff0c;以便当接受到消息是关于什么的。其中每个Hanler都有自己的命名控件#xff0c;不用担心会冲突*/ public int what; /*** 如果你…Message中可以携带的信息 Message中可以携带的数据比较丰富下面对一些常用的数据进行了分析。 /*** 用户定义的消息代码以便当接受到消息是关于什么的。其中每个Hanler都有自己的命名控件不用担心会冲突*/ public int what; /*** 如果你只想存很少的整形数据那么可以考虑使用arg1与arg2,* 如果需要传输很多数据可以使用Message中的setData(Bundle bundle)*/public int arg1; /*** 如果你只想存很少的整形数据那么可以考虑使用arg1与arg2,* 如果需要传输很多数据可以使用Message中的setData(Bundle bundle)*/public int arg2; /*** 发送给接受方的任意对象在使用跨进程的时候要注意obj不能为null*/public Object obj; /*** 在使用跨进程通信Messenger时可以确定需要谁来接收*/public Messenger replyTo; /*** 在使用跨进程通信Messenger时可以确定需要发消息的uid*/public int sendingUid -1; /*** 如果数据比较多可以直接使用Bundle进行数据的传递*/Bundle data; 创建消息的方式 官方建议使用Message.obtain()系列方法来获取Message实例因为其Message实例是直接从Handler的消息池中获取的可以循环利用不必另外开辟内存空间效率比直接使用new Message创建实例要高。其中具体创建消息的方式我已经为大家分好类了。具体分类如下 //无参数 public static Message obtain() {...} //带Messag参数 public static Message obtain(Message orig) {} //带Handler参数 public static Message obtain(Handler h) {} public static Message obtain(Handler h, Runnable callback){} public static Message obtain(Handler h, int what){} public static Message obtain(Handler h, int what, Object obj){} public static Message obtain(Handler h, int what, int arg1, int arg2){} public static Message obtain(Handler h, int what,int arg1, int arg2, Object obj) {} 其中在Message的obtain带参数的方法中内部都会调用无参的obtain()方法来获取消息后。然后并根据其传入的参数对Message进行赋值。关于具体的obtain方法会在下方消息池实现原理中具体描述 消息池实现原理 既然官方建议使用消息池来获取消息那么在了解其内部机制之前我们来看看Message中的消息池的设计。具体代码如下 private static final Object sPoolSync new Object();//控制获取从消息池中获取消息。保证线程安全 private static Message sPool;//消息池 private static int sPoolSize 0;//消息池中回收的消息数量 private static final int MAX_POOL_SIZE 50;//消息池最大容量 // sometimes we store linked lists of these thingsUnsupportedAppUsage/*package*/ Message next;public static Message obtain() {synchronized (sPoolSync) {if (sPool ! null) {Message m sPool;sPool m.next;m.next null;m.flags 0; //重新标识当前Message没有使用过sPoolSize--;return m;}}return new Message();//如果为空直接返回} 从中我们发现如果sPool如果不为null则返回直接new一个Message返回整个方法结束那么sPool是什么sPool是一个message从源码中我们可以发现sPool其实就相当于一个头指针指向缓存池中第一个缓存的Message如果sPool不为null则说明缓存池中存在空闲的Message返回缓存池中空闲的message然后sPool执行下一个缓存message对象然后将msg.next重置为0整体代码过下来我们发现Message的缓存池其实就是用了一个数据结构-单向链表。具体流程如图 这块就很明显是消息池的取出了那么它的存是在哪里呢全局搜sPool我们发现在recycleUncheck中有实现 /*** Recycles a Message that may be in-use.* Used internally by the MessageQueue and Looper when disposing of queued Messages.*/UnsupportedAppUsagevoid recycleUnchecked() {// Mark the message as in use while it remains in the recycled object pool.// Clear out all other details.flags FLAG_IN_USE;what 0;arg1 0;arg2 0;obj null;replyTo null;sendingUid UID_NONE;workSourceUid UID_NONE;when 0;target null;callback null;data null;synchronized (sPoolSync) {if (sPoolSize MAX_POOL_SIZE) {next sPool;sPool this;sPoolSize;}}} 然后这块代码又是在recycle中调用的 /*** Return a Message instance to the global pool.* p* You MUST NOT touch the Message after calling this function because it has* effectively been freed. It is an error to recycle a message that is currently* enqueued or that is in the process of being delivered to a Handler.* /p*/public void recycle() {if (isInUse()) {if (gCheckRecycle) {throw new IllegalStateException(This message cannot be recycled because it is still in use.);}return;}recycleUnchecked();} 这块首先判断消息是否在使用之中如果在使用之中继续判断gCheckRecyclegCheckRecycle的默认值是true,如果不在使用之中最后会走进recycleUnchecked。 然后来分析recycleUnChecked 一开始把这个消息所有成员赋值成最初的状态FLAG_IN_USE的值是1一开始说了Message的flags表示这个Message有没有在使用1表示在池中等待复用0表示正在被使用。重点看同步锁中的代码。 假设全局池没有元素时我们将第一个消息放到池中sPool一开始是NULLnext指向了sPool,所以此时的消息的sPool和next都是NULL然后sPool指向当前的Message对象最后池的数量加1。大致如下图。 假设有来个消息m2在走一遍同步锁中的代码此时全局池的状态如下图所示。 其他几个类似
http://www.w-s-a.com/news/947300/

相关文章:

  • 一个网站如何做cdn加速器如何上传网站数据库
  • 汝州住房和城乡建设局新网站营销网站定位
  • yy直播官网seo引擎优化是什
  • 做影视网站违法莫品牌营销是什么
  • 全网最稳最低价自助下单网站wordpress电影网站主题
  • 域名更换网站温州建设工程网站
  • 网站如何优化推广连锁店管理网站开发
  • 伊宁市做网站功能性质网站
  • 北京哪个网站制作公司优化大师免费安装下载
  • 同江佳木斯网站设计做网站联系电话
  • 设计上海展会2023seo网站模板下载
  • 开发一个卖东西的网站多少站长工具永久
  • 公司网站怎么突然多了好多友情链接如何删除宁波有几个区
  • 临沂seo网站推广wordpress新编辑器
  • c2c网站设计店面logo设计制作
  • 网站建设任务执行书重庆今天新闻事件
  • 怎样发布自己的网站南宁制作网站公司
  • wordpress装多站点百度查一下
  • 怎么优化一个网站搭建网站免费空间
  • 山东建设和城乡建设厅注册中心网站首页wordpress安装教材
  • 个人风采网站制作毕节网站开发公司电话
  • 网络网站销售设计主题和设计理念
  • 做网站一般用什么服务器承德专业做网站
  • 松北区建设局网站网站建设分为几种
  • 网站建设的合同 体会智联招聘网站建设情况
  • 记的网站域名wordpress地方信息主题
  • 淄博好的建网站公司网站建设 海口
  • 有人做网站花了10几万2017做啥网站能致富
  • 做网站有什么软件cod建站平台
  • 合肥学校网站建设怎么做免费的产品图片网站