首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

处理程序中post(Runnable)和sendMessage(Message)的区别

post(Runnable)和sendMessage(Message)是Android开发中常用的两种线程间通信方式。

  1. 区别:
  2. post(Runnable):该方法是在目标线程的消息队列中添加一个Runnable对象,目标线程会按照消息队列的顺序依次执行这些Runnable对象。post(Runnable)方法是异步的,即调用该方法后会立即返回,不会等待目标线程执行完毕。
  3. sendMessage(Message):该方法是向目标线程发送一个Message对象,目标线程会通过Handler处理该消息。sendMessage(Message)方法是同步的,即调用该方法后会等待目标线程处理完该消息后才会返回。
  4. 应用场景:
  5. post(Runnable):适用于需要在目标线程执行一段代码,但不需要获取执行结果的场景。例如,在主线程中更新UI,可以使用post(Runnable)将UI更新的代码放入主线程的消息队列中执行。
  6. sendMessage(Message):适用于需要与目标线程进行双向通信,或者需要获取目标线程执行结果的场景。例如,在子线程中执行耗时操作,可以使用sendMessage(Message)将执行结果发送给主线程进行处理。
  7. 推荐的腾讯云相关产品和产品介绍链接地址: 腾讯云提供了丰富的云计算产品和服务,以下是一些相关产品和介绍链接:
  8. 云服务器(CVM):提供弹性计算能力,支持多种操作系统和应用场景。详情请参考:https://cloud.tencent.com/product/cvm
  9. 云数据库MySQL版(CDB):提供高可用、可扩展的MySQL数据库服务。详情请参考:https://cloud.tencent.com/product/cdb_mysql
  10. 云存储(COS):提供安全、稳定、低成本的对象存储服务。详情请参考:https://cloud.tencent.com/product/cos
  11. 人工智能(AI):提供多种人工智能服务,包括图像识别、语音识别、自然语言处理等。详情请参考:https://cloud.tencent.com/product/ai
  12. 物联网(IoT):提供全面的物联网解决方案,包括设备接入、数据管理、应用开发等。详情请参考:https://cloud.tencent.com/product/iot

请注意,以上链接仅为示例,实际选择产品时应根据具体需求进行评估和选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

android handler.posthandler.sendMessage区别联系

sendMessage()有什么区别? 2. 它有什么独特作用呢?...handler.sendMessage本质上是没有区别的,都是发送一个消息到消息队列,而且消息队列handler都是依赖于同一个线程。...: postsendMessage只是用法上区别,本质是没有区别的。...最终总结: 1. postsendMessage本质上是没有区别的,只是实际用法中有一点差别 2. post也没有独特作用,post本质上还是用sendMessage实现post只是一更方便用法而已...总结 以上所述是小编给大家介绍android handler.posthandler.sendMessage区别联系,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

2.5K10

PHPPOSTGET区别

HTML5学堂:在JavaScript当中,存在“getpost方法区别”这一辨析知识。其实getpost是向服务器端请求/提交数据两种方式。...$_POST$_GET有何作用 PHP中有$_POST$_GET两个超级全局变量,两个都可以用作向服务器发送请求,但是这两者有一些区别。...来整体总结一下: POST:用于向服务器发送数据,从而以某种方式导致服务器上状态改变,如在数据库插入数据。数据还可以在响应返回。...不同于GET,POST请求只能通过WEB表单动作完成,另外,POST当中发送数据是隐藏不可见。 GET:一般用于数据获取,而不会使服务器有任何改变。...对于少量数据,GET非常有用,可以直接在URL向服务器发送数据。与POST另一个不同之处在于GET适用于发送少量数据。

1.7K50

浅谈web开发GetPost方法getpost区别

在http协议,实际上有八个http方法。但在实际开发,绝大多数情况我们只会用到两个方法,就是getpost。所以我们来稍微谈谈两种方法区别,以及何时应该选取何种方法。...getpost区别 post有一个体! 这个是关键。 ? Paste_Image.png ?...Paste_Image.png getpost都能发送参数,但是利用get的话,对参数数据量有限制,因为参数只能是放在请求行内容。而post由于在体,则没有数据量限制。...---- ** 所以总结一下,第一方面的区别数据量大小限制 ** ---- 但不仅仅是数据大小。 使用get时,参数数据会显示在浏览器输出栏,这就引发了安全问题。...** get是幂等,而post不是幂等**

1.7K20

httpgetpost方法区别

httpgetpost方法区别 一、httpshttp区别 1、简要描述 超文本传输协议HTTP协议被用于在Web浏览器网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式数据加密...,如果攻击者截取了Web浏览器网站服务器之间传输报文,就可以直接读懂其中信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。...3、两者区别 HTTPSHTTP区别主要如下:   1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。   ...3、httphttps使用是完全不同连接方式,用端口也不一样,前者是80,后者是443。   ...2、getpost方法区别 get:get方法参数在URL,可以被看到,并且可以缓存 postpost方法数据在请求体内,具有一定隐蔽性,不可以缓存 具体区别,如下图所示,图源来自

62410

http请求getpost方法区别

一、原理区别 一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。...二、使用时最直观区别 最直观区别就是GET把参数包含在URLPOST通过request body传递参数。...四、面试是一般怎么回答getpost区别 (1)post更安全(不会作为url一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录) (2)post发送数据更大(get有url长度限制)...),目的是资源获取,读取数据 五、测试getpost请求工具 getpost请求一般使用是接口测试工具,接口测试工具我个人一般使用是:apipostjmeter。...针对于接口程序稳定性设计一块以软件性能为主接口测试为辅接口测试工具。 4.png

3.2K31

程序员:我终于知道postget区别

此话一出,不知激起了多少(码农)程序愤怒,却又无可奈何,于是码农问程序员。 码农:你知道getpost请求到底有什么区别程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。...2 HEAD 类似于get请求,只不过返回响应没有具体内容,用于获取报头 3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体。...1.3 我们耳熟能详区别 http协议最常见两种方法GETPOST,这几点答案其实有几点并不准确 请求缓存:GET 会被缓存,而post不会 收藏书签:GET可以,而POST不能 保留浏览器历史记录...getpost误区针对上面常见区别,如果面试时候这么说,肯定是有很大毛病,刚在学校面试时候也曾经囫囵吞枣地这样说过,现在回过头再想以前错误认知,又有许多新认识,学习就是不断刷新认知 2.1...别人问你应用层协议里 GET POST 有啥区别,你回答说这俩在传输层上发送数据时候不一样,确定别人不抽你?

1.5K21

Android面试必备知识点:AndroidHandler八大问题汇总

3、handler执行sendMessage或者post操作,这些操作执行线程是handlerLooper所在线程,handler在哪里创建没关系,HandlerLooper在那创建有关系...2、Handler机制,sendMessagepostRunnable区别?...要看sendMessagepost区别,需要从源码来看,下面是几种使用handler方式,先看下这些方式,然后再从源码分析有什么区别。...然后再讲message进入到队列post代码调用链: 调用post时候会先调用getPostMessage生成一个Message,后面sendMessage流程一样。...总结 post方法handleMessage方法不同在于,postrunnable会直接在callback调用run方法执行,而sendMessage方法要用户主动重写mCallback或者handleMessage

1.1K20

HTTP协议GETPOST接口测试区别

前言 在进行接口测试时,了解不同HTTP请求方法对于正确测试评估接口功能至关重要。本文将探讨HTTP协议GETPOST请求方法在接口测试区别以及它们特点应用场景。...GETPOST接口测试区别 在接口测试,GETPOST请求区别在于: 参数传递方式:GET请求通过URL查询字符串传递参数,而POST请求通过请求主体传递参数。...参数可见性:GET请求参数在URL可见,容易被截取篡改,而POST请求参数在请求主体,对外部不可见。...总结 在HTTP协议,GETPOST是常用请求方法。...在接口测试,需要注意它们参数传递方式、可见性、数据长度限制幂等性等方面的区别,以保证对接口功能准确测试评估。

36410

【Android】Handler 使用

在main线程,主要是运行一个Message Queue,管理着顶级应用程序(Activity,Boardcast Receiver…)这些顶级应用程序在默认情况下都会在主线程创建。...0x15 handleMessage方法 handleMessage方法用于接收Message对象并进行相应处理,对应HandlersendMessage方法。...当我们想要在其他线程更新UI时,就可以用主线程创建Handler调用sendMessage方法,然后在该Handler重写handleMessage方法做相应处理。...可以这样做:在主线程创建一个Handler。然后在子线程,我们可以调用Handlerpost方法,并向其中传递一个Runnable为参数,在Runnable更新UI即可。...它与post区别就是它会在delayMills这段时间之后再去执行Runnable方法,也就是延迟执行。

90620

面试问题之:Android消息系统模型Handler Looper

但是在你新线程,给定Message或者Runnable,会在适当时候被调度处理。 (即不会被立即处理——阻塞式)。   ...消息发送派发接口:   l  postrunnable)消息,Runnable是消息回调,经过消息循环引发消息回调函数执行;   l  sendMessageMessage)消息,经过消息循环派发消息处理函数处理消息...2 消息发送 消息发送两种方式:postsendMessagepost:针对runnable对象;Runnable是一个接口,就是一个回调函数(提供了run方法) sendMessage...(msg, 0); }   看到postsendMessage发送消息时,仅仅是对象不同而已,RunnableMessage; 但实际上都是Message形式来描述。...然后消息派发时处理方式不同。如果在sendMessage时将将消息对象 附上Runnable对象,则postsendMessage没有区别了。所以这两种方式很好理解基本一致,处理方式不同罢了。

27920

Handler实现线程之间通信下载文件动态更新进度条

原理 每一个线程对应一个消息队列MessageQueue,实现线程之间通信,可通过Handler对象将数据装进Message,再将消息加入消息队列,而后线程会依次处理消息队列消息。 2....发送消息 在子线程可调用主线程handler.sendMessage(msg)进行发送消息,经过一系列方法调用,会触发handlerhandleMessage方法,从而进行消息处理。...(Message msg, int time); sendMessageAtTime()sendMessageDelayed()区别在于前者是在指定时间发送消息,可配合SystemClock.uptimeMillis...除了SendMessage()方法以外,还可以通过post()方法发送消息: handler.post(Runnable r); handler.postDelayed(Runnable r, int...time); sendMessage()与post()区别:https://www.zalou.cn/article/120624.htm 4.

55710

Android :安卓学习笔记之 Handler机制 简单理解使用

3、作用意义 在多线程应用场景,将工作线程需更新UI操作信息 传递到 UI主线程,从而实现 工作线程对UI更新处理,最终实现异步消息处理 多个线程并发更新UI同时 保证线程安全 4、主要参数...Messagewhat字段用来标记区分多个消息,arg1、arg2 字段用来传递int类型数据,obj可以传递任意类型字段。 (2)Handler,用于发送处理消息。...// 即回调Runnable对象里复写run() } 至此,你应该明白使用 Handler.post()工作流程与Handler.sendMessage()类似,区别在于: 不需外部创建消息对象...、Handler.postHandler.sendMessage区别 6.5、MessageQueue分析 首先来看看构造函数 MessageQueue(boolean quitAllowed) {...6.5.2、enqueueMessage是如何处理Message 图中 1处会判断如果 Message target 没有被设置,则直接抛出异常; 图中2 3 处会按照 Message 时间

57210

Android异步通信:深入剖析Handler机制源码

postRunnable r)发送消息,则直接回调Runnable对象里复写run() 若msg.callback属性为空,则代表使用了sendMessageMessage msg)发送消息,则回调复写...相比sendMessage(),post()最大不同在于,更新UI操作可直接在重写run()定义 * b....内部 根据Runnable对象而封装 发送到消息队列逻辑 = 方式1sendMessageMessage msg) 下面,我们重新回到步骤1前隐式操作2:消息循环,即Looper类loop...// 即回调Runnable对象里复写run() } 至此,你应该明白使用 Handler.post()工作流程:与方式1(Handler.sendMessage())类似,区别在于: 不需外部创建消息对象...,而是内部根据传入Runnable对象 封装消息对象 回调消息处理方法是:复写Runnable对象run() 二者具体异同如下: 至此,关于使用 Handler.post()源码解析完毕 总结

63020

Android Handler异步通信:深入详解Handler机制源码

postRunnable r)发送消息,则直接回调Runnable对象里复写run() 若msg.callback属性为空,则代表使用了sendMessageMessage msg)发送消息,则回调复写...(msg); /** * 源码分析:mHandler.sendMessage(msg) * 定义:属于处理器类(Handler)方法 * 作用:将消息 发送 到消息队列Message...(Runnable r) * 定义:属于处理者类(Handler)方法 * 作用:定义UI操作、将Runnable对象封装成消息对象 & 发送 到消息队列Message ->> MessageQueue...相比sendMessage(),post()最大不同在于,更新UI操作可直接在重写run()定义 * b....// 即回调Runnable对象里复写run() } 至此,你应该明白使用 Handler.post()工作流程:与方式1(Handler.sendMessage())类似,区别在于: 不需外部创建消息对象

1.2K20

Android 谈谈 Handler 那些事一、Handler是什么

这样就可以通过 Handler 将 Message Runnable 对象发送到该Handler所关联线程 MessageQueue(消息队列),然后该消息队列一直在循环拿出一个 Message...,对其进行处理处理完之后拿出下一个 Message,继续处理 Handler 可以用来在多线程之间进行通信,在另一个线程中去更新 UI 线程 UI 控件只是 Handler 使用一种典型案例...,Post sendMessage PostPost允许把一个 Runnable 对象入队到消息队列,它方法有:post(Runnable)、PostAtTime(Runnable, long...)、postDelayed(Runnable, long) sendMessagesendMessage允许把一个包含消息数据Message对象压入到消息队列,它方法有sendEmptyMessage...,不管是 post 还是 sendMessage 都具有多种方法,它们可以设定Runnable 对象 Message 对象被入队到消息队列,是立即执行还是延迟执行 1、Post 对于 Handler

38310

Android开发之Handler前世今生

Handler允许你通过使用一个与线程MessageQueue相关联MessageRunnable对象去发送处理消息。 每个处理程序实例与单个线程该线程消息队列相关联。...当您创建一个新处理程序时,它绑定到正在创建它线程线程/消息队列 - 从那时起,它将向消息队列传递消息可运行文件,并在消息发出时执行它们 队列。...Handler有两个主要用途:(1)在可预见时间内去调度消息作为一些点可运行程序(2)将不同于自己线程执行操作排入队列。...后台版本允许你将接收到消息队列调用Runnable对象排入队列; sendMessage版本允许你将包含将由处理程序handleMessage(Message)方法处理数据包(要求您实现Handler...你可以创建你自己线程并通过Handler与主应用程序线程进行通信。 这可以通过从你新线程调用同样postsendMessage方法来实现。

41210

Android精通之Handler讲解

,Message,Handler作用将Message对象发送到MessageQueue,Looper作用像个发动机,从MessageQueue取出数据交给HandlerhandleMessage...Handler方法以及使用 1.Handler.sendMessage() 2.Handler.post() 二:在onCreate为主线程/UI线程,做一些轻量级事情 主线程: //创建一个Handler...: 处理Message与线程关联Runnable对象MessageQueue,第一,安排将要执行消息可执行程序;二,在不用线程执行任务。...调度消息实现 sendMessage(Message msg) sendMessageAtTime(Message,long) sendMessageDelayed(Message,long) sendEmptyMessage...线程默认情况下没有与它们相关消息循环;创建一个,在要运行循环线程调用prepare(),然后让loop()处理,直到循环停止。 与消息循环大多数交互是通过Handler类。

45120

Android 异步任务 设置 超时使用handler更新通知功能

需要使用Handler有两大主要原因: (1)在将来某个时间点调度处理消息runnable对象; (2)将需要执行操作放到其他线程之中,而不是自己; 调度处理消息是通过调用post(Runnable...), postAtTime(Runnable, long),postDelayed(Runnable, long), sendEmptyMessage(int), sendMessage(Message...其中post版本方法可以让你将Runnable对象放进消息队列;sendMessage版本方法可以让你将一个包含有bundle对象消息对象放进消息队列,然后交由handleMessage(Message...就是用来管理Message(handler接收处理消息对象)!...(疯狂Android讲义224页) (1)主ui线程启动,系统就初始化了一个Looper对象,只要在程序中直接创建handler即可,然后用handler发送处理消息。

1.7K10
领券