Android ionic中的图像/文件缓存是如何工作的?

Android ionic中的图像/文件缓存是如何工作的?,android,image,caching,cordova-plugins,Android,Image,Caching,Cordova Plugins,我有一个ionic应用程序,它使用$cordovaImagePicker、$cordovaFile和$cordovaCamera将图像从设备存储到本地应用程序目录。此过程的工作流如下所示: .state('app.product', { url: '/app.product', cache: false, views: { 'menuContent': { templateUrl: 'master_data/views/mainProductInformation

我有一个ionic应用程序,它使用$cordovaImagePicker、$cordovaFile和$cordovaCamera将图像从设备存储到本地应用程序目录。此过程的工作流如下所示:

.state('app.product', {
url: '/app.product',
  cache: false,
  views: {
    'menuContent': {
        templateUrl: 'master_data/views/mainProductInformation.html',
        controller: 'MainProductInformationController'
    }
  }
  })
  .state('app.productdetail', {
    url: '/productdetail',
    cache: false,
    params: {
        productDetail: null
    },
    views: {
        'menuContent': {
            templateUrl : 'master_data/views/detailedProductInformation.html',
            controller : 'DetailedProductInformationController',
        }
    }
})
  • 从多媒体资料中获取图像(使用$cordovaImagePicker)或拍照(使用$cordovaCamera)
  • 将文件URI存储到$scope变量
  • 当用户决定保存图像时,我使用$cordovaFile检查文件是否已经存在于cordova.file.dataDirectory中,如果已经存在,则将其删除。然后,我将文件从缓存目录移动到cordova.file.dataDirectory
  • 我能够在cordova中正确保存图像而不出现任何错误,并且在更新后,我的应用程序将使用不同的控制器重新定向到另一个屏幕。现在我遇到的问题是,当我更改图像并尝试查看它时,我的应用程序仍然显示旧图像。但是,如果我关闭应用程序,然后重新打开并尝试再次查看该图像,它已经显示了新图像。所以这似乎是一个缓存问题。我在路由控制器中的代码如下:

    .state('app.product', {
    url: '/app.product',
      cache: false,
      views: {
        'menuContent': {
            templateUrl: 'master_data/views/mainProductInformation.html',
            controller: 'MainProductInformationController'
        }
      }
      })
      .state('app.productdetail', {
        url: '/productdetail',
        cache: false,
        params: {
            productDetail: null
        },
        views: {
            'menuContent': {
                templateUrl : 'master_data/views/detailedProductInformation.html',
                controller : 'DetailedProductInformationController',
            }
        }
    })
    

    应用程序将从app.productdetail返回到app.product。我认为cache:false可以解决缓存问题,但事实并非如此。有人知道问题是什么吗

    我也有同样的问题。。。您是否能够解决此问题?在将值分配给图像变量时,尝试通过附加查询参数来强制重新加载图像。如果($scope.RecordData[i].thumbnail){$scope.RecordData[i].thumbnailreloated=$scope.RecordData[i].thumbnail+“?”+new Date().getTime();}我也有同样的问题。。。您是否能够解决此问题?在将值分配给图像变量时,尝试通过附加查询参数来强制重新加载图像。if($scope.RecordData[i].thumbnail){$scope.RecordData[i].thumbnailreloated=$scope.RecordData[i].thumbnail+“?”+new Date().getTime();}