问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android广播接收的onReceive方法不执行,即接收不到广播的消息

发布网友 发布时间:2022-04-07 09:03

我来回答

3个回答

懂视网 时间:2022-04-07 13:24

onReceive

接收到数据时回调此函数,发生在worker进程中。函数原型: (推荐学习: swoole视频教程)

function onReceive(swoole_server $server, int $fd, int $reactor_id, string $data);

$server,Server对象

$fd,TCP客户端连接的唯一标识符

$reactor_id,TCP连接所在的Reactor线程ID

$data,收到的数据内容,可能是文本或者二进制内容

关于$fd和$reactor_id 详细的解释

未开启自动协议选项,onReceive单次收到的数据最大为64K

开启了自动协议处理选项,onReceive将收到完整的数据包,最大不超过 package_max_length

支持二进制格式,$data可能是二进制数据

使用底层提供的open_eof_check/open_length_check/open_http_protocol,可以保证数据包的完整性

不使用底层的协议处理,在onReceive后PHP代码中自行对数据分析,合并/拆分数据包。

例如:代码中可以增加一个 $buffer = array(),使用$fd作为key,来保存上下文数据。 每次收到数据进行字符串拼接,$buffer[$fd] .= $data,然后在判断$buffer[$fd]字符串是否为一个完整的数据包。

默认情况下,同一个fd会被分配到同一个Worker中,所以数据可以拼接起来。使用dispatch_mode = 3时。

请求数据是抢占式的,同一个fd发来的数据可能会被分到不同的进程。所以无法使用上述的数据包拼接方法

关于粘包问题如SMTP协议,客户端可能会同时发出2条指令。在Server中可能一次性收到,这时应用层需要自行拆包。SMTP是通过 来分包的,所以业务代码中需要 explode(" ", $data)来拆分数据包。

如果是请求应答式的服务,无需考虑拆分数据的问题。原因是客户端在发起一次请求后,必须等到服务器端返回当前请求的响应数据,才会发起第二次请求,不会同时发送2个请求

热心网友 时间:2022-04-07 10:32

最大的可能是广播没有注册

1)第一种不是常驻型广播,也就是说广播跟随activity的生命周期。注意: 在activity结束前,移除广播接收器。(代码里注册)
2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。(androidmanifest.xml注册)

热心网友 时间:2022-04-07 11:50

有几种可能你可以考虑:
1,看标题,你是要读取用户信息,有没有获得读取用户数据的权限?
2,广播动作是否注册?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小米平板6Max没有网络怎么办 ...wifi和4G网络我都试过都现实吗没有网络。刚买的是正品没有刷机_百度... 2023年淘宝双11招商规则 淘宝国庆狂欢季招商规则及玩法 淘宝年货买不停招商规则 淘宝超来电活动招商规则 ZIP转换成RAR怎么转换? 衢州醉根艺品有限公司怎么样? 徐谷青主要业绩 徐谷青人物介绍 晋江交社保医保如何转回建瓯交 福建省医疗保险管理中心 电话 福建市医保管理中心地址电话是多少 福建建瓯社保的钱打到卡里了多久会收走 福建市医保管理中心在哪里 福建省医保中心地址 建瓯每年医社保在哪里交钱 福建省建瓯市社会保障局在哪里,也就是办理社保医保的地方在哪里? 建瓯乡镇医保缴费代办点在哪里 福建建瓯医保中心官网 福建建瓯医疗保险中心 建瓯市医疗保险中心 佳能打印机mx928都能打印什么? 佳能打印机直接连接和打印 canon打印机型号LBP2900220-240v怎么连接手机打印- 问一问 佳能9020打印机墨车回不到位? 佳能lbp2900打印机,的问题!!急求!! 佳能8280和9020那种打印机好 佳能a309 打印机驱动 请问各位打印机高手帮忙解释一下,佳能打印机 mx928和mx920有什么区别,我卖的mx928的, 求助!CAsyncSocket的OnReceive()刚建立连接时正常,运行一段时间后不再触发! 组词该怎么组词? 该可不可以组词该当 请问:用:一,二,三,四,五,六,七,八,九,十。组词该怎么组?谢谢。 好是多音字。组词该怎么组 该减掉什么旁边再加上什么旁边组词 比一比再组词该,孩 瑶组词该组什么 应组词有哪些词语 强qiang第三声组词该怎么组 组词应该是有趣还是有趣儿 动画片熊出没之熊大变瘦是那一集 熊出没之冬日乐翻天的介绍 熊出没 熊二减肥是哪一集 熊出没之冬日乐翻天恐龙化石是哪一集 动漫主角是熊大熊二的《熊出没》有哪些关联作品? 熊出没之冬日乐翻天 求熊出没、熊出没之春日对对碰、夏日连连看、秋日团团转、冬日乐翻天、熊出没之环球大冒险、丛林总动员 熊出没之冬日乐翻天一共有多少集 《熊出没》中熊大最你让佩服的地方是什么?