递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 2752|回复: 1
打印 上一主题 下一主题

[安卓] 安卓HP如何全局生效不挂接

[复制链接]

62

主题

237

帖子

893

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
893
QQ
跳转到指定楼层
楼主
发表于 2023-11-14 06:50:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 绯陌如夏 于 2023-11-14 07:16 编辑

一起来讨论下,安卓上的HP组件是如何实现全局收发的.通过挂接方式接受事件,每次多窗口来回切换太痛苦了,很多事件处理都连贯不上.

多窗口的例程中,所有的窗口都很容易 发送数据 ,缺点是同一时间只有一个前台窗口可以接受数据.
后台服务例程中,所有的窗口都很容易接收数据,缺点是对象在主窗口,别的窗口想发送数据就需要主窗口在前台......


回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40529
沙发
发表于 2023-11-14 08:08:22 | 只看该作者
本帖最后由 创世魂 于 2023-11-14 08:15 编辑

你总归是需要来回切换窗口的,就算你把事件都写到了一个地方,但是你处理组件操作组件,还是需要切换到窗口代码里面去操作。 因为你无法知道这个窗口是否被关闭,如果窗口被关闭了,是没办法处理的。


又或者说你用事件总线类结局问题,但是你还是需要再对应的窗口代码里面去编写事件总线类的相关代码来处理。
逃离的hp的事件,逃脱不了事件总线类的事件。

当然你也可以把hp客户端搞一个基础窗口出来。操作起来可能更加的优雅一些。。




  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 类 基础窗口 <公开 基础类 = 安卓5白色窗口 @禁止创建对象 = 真>
  3. {
  4.     变量 PACK <公开 类型 = HP_PACK客户端>

  5.     方法 HP_PACK客户端_数据进入 <接收事件 类型 = 整数>
  6.     参数 来源对象 <类型 = HP_PACK客户端>
  7.     参数 标记值 <类型 = 整数>
  8.     参数 当前数据长度 <类型 = 整数>
  9.     参数 所接收到数据 <类型 = "字节 []">
  10.     {
  11.         数据进入 (当前数据长度,所接收到数据)
  12.         返回 (0)
  13.     }

  14.     方法 数据进入 <公开 定义事件 类型 = 整数>
  15.     参数 当前数据长度 <类型 = 整数>
  16.     参数 所接收到数据 <类型 = "字节 []">
  17. }

  18. 类 启动类 <公开 基础类 = 基础窗口 注释 = "API30中下载文件" @安卓.附加清单 = 常用窗口附加清单.全面屏2>
  19. {
  20.     变量 按钮1 <类型 = 按钮 内容 = "下载文件">

  21.     方法 启动类_数据进入 <接收事件 类型 = 整数>
  22.     参数 来源对象 <类型 = 启动类 注释 = "提供事件产生的具体来源对象">
  23.     参数 标记值 <类型 = 整数 注释 = "用户调用"挂接事件"命令时所提供的"标记值"参数值,非此方式挂接事件则本参数值固定为0.">
  24.     参数 当前数据长度 <类型 = 整数>
  25.     参数 所接收到数据 <类型 = "字节 []">
  26.     {
  27.         返回 (0)
  28.     }
  29. }


复制代码
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-24 04:23 , Processed in 0.085375 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表