HarmonyOS 图片缓存需要多长时间,为啥加了setImageRawDataCacheSize依旧没有缓存图片

下面的demo代码在运行时,抓包发现依旧会下载两次图片,请问为啥图片设置了缓存没有生效

demo:

import app, { AppResponse } from '@system.app'

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  @State hasComplete: boolean = true;
  @State imageUrl: string = ""
  @State imageShow : boolean = false

  onPageShow() {
    // 设置解码前图片数据内存缓存上限为100MB (100MB=100*1024*1024B=104857600B)
    app.setImageRawDataCacheSize(104857600)
    console.info('Application onPageShow')
  }

  build() {
    Stack({alignContent: Alignment.Top}) {
      if (this.hasComplete) {
        Image(this.imageUrl)
          .width(500)
          .height(150)
          .margin(100)
          .onComplete(mes => {
            this.imageShow = true
          })
      }
      Image("https://***.com/th?id=OHR.FireWave_ZH-CN7110736577_1920x1200.jpg")
        .width(200)
        .height(150)
        .margin(15)
        .onComplete(msg => {
          this.hasComplete = true
          this.imageUrl = "https://***.com/th?id=OHR.FireWave_ZH-CN7110736577_1920x1200.jpg"
        })
        .visibility(this.imageShow ? Visibility.Visible : Visibility.Hidden)
    }
  }
}
HarmonyOS
6天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

onComplete回调中返回的loadingStatus状态值为0时,表示图片数据加载成功。返回的状态值为1时,表示图片解码成功。建议在loadingStatus返回值为1的时候再进行图片地址的赋值,这样可保证图片使用缓存,而不进行二次下载。

参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-image-V5#oncomplete

分享
微博
QQ
微信
回复
6天前
相关问题
HarmonyOS 图片缓存问题
227浏览 • 1回复 待解决
HarmonyOS 图片缓存问题
183浏览 • 1回复 待解决
HarmonyOS 图片缓存策略
589浏览 • 1回复 待解决
HarmonyOS 图片缓存机制
475浏览 • 1回复 待解决
HarmonyOS Image组件的网络图片缓存
334浏览 • 1回复 待解决
鸿蒙-有没有缓存工具类
6118浏览 • 1回复 待解决
在设计缓存时是否必加过期时间
3781浏览 • 1回复 待解决