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

快速收录网站网站建设文字

快速收录网站,网站建设文字,江浙区域网络公司排名,wordpress博客seo优化插件目录 核心组件延迟发送消息的工作原理具体步骤1. 创建 Handler:2.发送延迟消息3.消息入队列4.消息出队和处理: 关键点总结 在 Android 中#xff0c;Handler 是用于在不同线程之间传递和处理消息的工具。它可以用于定时任务、延迟执行任务等。Handler 如何保证延迟发送消息的核… 目录 核心组件延迟发送消息的工作原理具体步骤1. 创建 Handler:2.发送延迟消息3.消息入队列4.消息出队和处理: 关键点总结 在 Android 中Handler 是用于在不同线程之间传递和处理消息的工具。它可以用于定时任务、延迟执行任务等。Handler 如何保证延迟发送消息的核心在于其与 MessageQueue 和 Looper 的协同工作。 核心组件 Handler: 用于发送和处理消息和可运行的任务Runnable。MessageQueue: 消息队列存储所有待处理的消息。Looper: 循环从 MessageQueue 中取出消息并分发给相应的 Handler 进行处理。 延迟发送消息的工作原理 当你使用 Handler 的 postDelayed 或 sendMessageDelayed 方法时消息会被添加到 MessageQueue 中并带有一个指定的时间戳。Looper 会根据时间戳来决定何时处理这些消息。 具体步骤 1. 创建 Handler: 通常在主线程中创建一个 Handler它会与主线程的 Looper 和 MessageQueue 关联。 Handler handler new Handler(Looper.getMainLooper());2.发送延迟消息 使用 postDelayed 或 sendMessageDelayed 方法发送延迟消息或任务。 // 延迟 2000 毫秒后执行 Runnable 任务handler.postDelayed(new Runnable() {Overridepublic void run() {// 执行任务}}, 2000);// 延迟 2000 毫秒后发送消息Message msg handler.obtainMessage();handler.sendMessageDelayed(msg, 2000);3.消息入队列 Handler 将消息或任务添加到 MessageQueue 中并带有一个执行时间当前时间 延迟时间。 boolean sendMessageAtTime(Message msg, long uptimeMillis) {MessageQueue queue mQueue;if (queue null) {RuntimeException e new RuntimeException(this sendMessageAtTime() called with no mQueue);Log.w(Looper, e.getMessage(), e);return false;}return enqueueMessage(queue, msg, uptimeMillis);}private boolean enqueueMessage(MessageQueue queue, Message msg, long uptimeMillis) {msg.target this;if (mAsynchronous) {msg.setAsynchronous(true);}return queue.enqueueMessage(msg, uptimeMillis);}4.消息出队和处理: Looper 不断循环从 MessageQueue 中取出时间戳小于等于当前时间的消息进行处理。 public static void loop() {final Looper me myLooper();final MessageQueue queue me.mQueue;for (;;) {Message msg queue.next(); // 可能会阻塞if (msg null) {// No message indicates that the message queue is quitting.return;}// 分发消息msg.target.dispatchMessage(msg);// 回收消息msg.recycleUnchecked();}}关键点 时间戳: 每个消息在入队时都会带有一个时间戳表示该消息何时可以被处理。消息队列排序: MessageQueue 会根据消息的时间戳进行排序确保最早到期的消息最先被处理。循环检查: Looper 会不断循环检查 MessageQueue一旦发现有到期的消息就立即处理。 总结 通过 Handler、MessageQueue 和 Looper 的协同工作Android 可以实现延迟发送消息和任务的功能。Handler 将消息或任务添加到 MessageQueue 中并带有一个执行时间戳。Looper 不断循环检查 MessageQueue当发现有到期的消息时立即取出并处理从而实现延迟执行的效果。 Android 之 Handler HandlerThread 和 Handler 区别 Android之Handler的post方法和sendMessage的区别 Android之同一个Thread线程里只能有一个Looper?(ThreadLocal)
http://www.w-s-a.com/news/123472/

相关文章:

  • 青浦门户网站网站推广烟台公司电话
  • 湖北荆门建设银行网站wordpress购物模板下载
  • 学ui+wordpress模板北京推广优化
  • 建分类网站得花多少钱深圳设计网站开发
  • 网站集群建设和网站集约化百度商桥怎么绑定网站
  • 青岛模板网站建设价格网络品牌网站建设
  • 网站建设的几大要素网站的做网站的公司
  • 怎么登陆自己的公司网站垂直电商网站建设
  • 温州微网站制作哪里有许昌网站建设哪家最好
  • 中国中小企业网站官网网页制作工具按其制作方式分 可以分为
  • 做资源下载网站违法吗河南企业做网站
  • 网站开发总体功能设计网站建设 北京昌平
  • 辽宁省高等级公路建设局网站书画院网站建设方案
  • 本地生活网站 源码重庆本地网站有哪些
  • 企业网站域名服务器国外html响应式网站
  • 东莞网站建设策划企业网站推广策划方法
  • 网站的图片怎么制作WordPress交互式网站
  • pc网站增加手机站什么专业学网页设计制作
  • 婚庆公司网站模板wordpress用什么框架
  • 高校网站建设的时效性长沙市网站建设
  • 合肥网站建设市场四川建设网官网住房和城乡厅官网官方
  • 天行健君子以自强不息网站建设江西网站做的好的企业文化
  • 建网站内容谷歌搜索引擎优化
  • 网站建设与管理案例教程第三版答案网站建设策划书范文六篇精选
  • 建设工程项目在哪个网站查询实时网站推广的最终目的是
  • 个人网站可以做淘客网站设置的参数
  • 自适应网站制作公司做室内设计通常上的网站
  • 网站建设项目采购公告建设网站公司建网页
  • 自己做网站怎么推广网站建设应该考虑哪些方面
  • 我做的网站手机上不了wordpress插件整站搬家