递归火山软件开发平台

标题: 求助 我实在是想不通是哪里的问题 [打印本页]

作者: kkwfggwfnh    时间: 2023-11-6 23:35
标题: 求助 我实在是想不通是哪里的问题
自己定义事件中给高级列表图片会不刷新显示,扫完码后滑动高级列表框才会显示 (, 下载次数: 5)



作者: kkwfggwfnh    时间: 2023-11-6 23:36
文件里面有TXT描述问题
作者: 创世魂    时间: 2023-11-7 08:30
应该是  解码结果 事件是多线程导致的。
改成下面这样试试。 这个事件改到主线程执行。



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

变量 结果 <类型 = 文本型>

方法 线程类_线程启动 <接收事件 类型 = 整数 注释 = "线程已经启动事件" 注释 = "注意: 此事件的处理方代码将在多线程环境下执行,必须处理好多线程冲突问题.">
参数 来源对象 <类型 = 线程类 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 用户对象1 <类型 = 对象类 注释 = "提供调用启动方法时所提供的第1个用户对象" @常量参数 = 真>
参数 用户对象2 <类型 = 对象类 注释 = "提供调用启动方法时所提供的第2个用户对象">
{
    如果 (标记值 == 1)
    {
        如果 (解码锁.已锁定 == 假)
        {
            解码锁.加锁 ()
        }
        变量 参数 <类型 = 华为解码图像参数类>
        参数.置多码解码 (假)
        参数.置解析扫码结果 (真)  // 提高解码速度,但是最终结果将无法判断二维码类型,比如:无法判断二维码是否为wifi类型的二维码.
        参数.置扫描格式 (华为码类型.Code128条码)  // 单独扫描二维码,进一步提高解码速度
        参数.置扫描方式 (真)
        变量 扫描结果1 <参考 类型 = 华为扫描结果>
        变量 结果数组 <类型 = "华为扫码结果类 []">
        变量 临时位图 <参考 类型 = 位图类>
        临时位图 = 位图类.从位图区域创建 ((位图类)用户对象1, (整数)DP到像素 (50), (整数)DP到像素 (20), (整数)DP到像素 (300), (整数)DP到像素 (70))
        扫描结果1 = 华为扫码类.解码 ((安卓窗口环境)用户对象2, 华为解码图像数据类.创建 (临时位图), 参数)
        如果 (扫描结果1 != 空对象)
        {
            结果数组 = 扫描结果1.取结果 ()
            如果 (结果数组 != 空对象 && 取数组成员数 (结果数组) > 0)
            {
                如果 (取文本长度 (结果数组 [0].取结果 ()) >= 9 && 取文本长度 (结果数组 [0].取结果 ()) <= 16)
                {
                    结果 = 结果数组 [0].取结果 ()
                    开始提交到主线程等待执行 ()
                    {
                        解码结果 ((位图类)用户对象1, 外部本对象 (解码类).结果)
                    }
                    结束提交到主线程等待执行 ()
                    {

                    }

                }
            }
        }
        如果 (解码锁.已锁定 == 真)
        {
            解码锁.解锁 ()
        }
    }
    返回 (0)
}

作者: kkwfggwfnh    时间: 2023-11-7 19:34
创世魂 发表于 2023-11-7 08:30
应该是  解码结果 事件是多线程导致的。
改成下面这样试试。 这个事件改到主线程执行。

感谢大神指点  懂了一点点了




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4