求助 我实在是想不通是哪里的问题
自己定义事件中给高级列表图片会不刷新显示,扫完码后滑动高级列表框才会显示文件里面有TXT描述问题 应该是解码结果 事件是多线程导致的。
改成下面这样试试。 这个事件改到主线程执行。
<火山程序 类型 = "通常" 版本 = 1 />
变量 结果 <类型 = 文本型>
方法 线程类_线程启动 <接收事件 类型 = 整数 注释 = "线程已经启动事件" 注释 = "注意: 此事件的处理方代码将在多线程环境下执行,必须处理好多线程冲突问题.">
参数 来源对象 <类型 = 线程类 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 用户对象1 <类型 = 对象类 注释 = "提供调用启动方法时所提供的第1个用户对象" @常量参数 = 真>
参数 用户对象2 <类型 = 对象类 注释 = "提供调用启动方法时所提供的第2个用户对象">
{
如果 (标记值 == 1)
{
如果 (解码锁.已锁定 == 假)
{
解码锁.加锁 ()
}
变量 参数 <类型 = 华为解码图像参数类>
参数.置多码解码 (假)
参数.置解析扫码结果 (真)// 提高解码速度,但是最终结果将无法判断二维码类型,比如:无法判断二维码是否为wifi类型的二维码.
参数.置扫描格式 (华为码类型.Code128条码)// 单独扫描二维码,进一步提高解码速度
参数.置扫描方式 (真)
变量 扫描结果1 <参考 类型 = 华为扫描结果>
变量 结果数组 <类型 = "华为扫码结果类 []">
变量 临时位图 <参考 类型 = 位图类>
临时位图 = 位图类.从位图区域创建 ((位图类)用户对象1, (整数)DP到像素 (50), (整数)DP到像素 (20), (整数)DP到像素 (300), (整数)DP到像素 (70))
扫描结果1 = 华为扫码类.解码 ((安卓窗口环境)用户对象2, 华为解码图像数据类.创建 (临时位图), 参数)
如果 (扫描结果1 != 空对象)
{
结果数组 = 扫描结果1.取结果 ()
如果 (结果数组 != 空对象 && 取数组成员数 (结果数组) > 0)
{
如果 (取文本长度 (结果数组 .取结果 ()) >= 9 && 取文本长度 (结果数组 .取结果 ()) <= 16)
{
结果 = 结果数组 .取结果 ()
开始提交到主线程等待执行 ()
{
解码结果 ((位图类)用户对象1, 外部本对象 (解码类).结果)
}
结束提交到主线程等待执行 ()
{
}
}
}
}
如果 (解码锁.已锁定 == 真)
{
解码锁.解锁 ()
}
}
返回 (0)
}
创世魂 发表于 2023-11-7 08:30
应该是解码结果 事件是多线程导致的。
改成下面这样试试。 这个事件改到主线程执行。
感谢大神指点懂了一点点了
页:
[1]