绯陌如夏 发表于 2023-11-14 06:50:33

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

本帖最后由 绯陌如夏 于 2023-11-14 07:16 编辑

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

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


创世魂 发表于 2023-11-14 08:08:22

本帖最后由 创世魂 于 2023-11-14 08:15 编辑

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


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

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




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

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

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

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

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

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


页: [1]
查看完整版本: 安卓HP如何全局生效不挂接