我有一个QML Flickable,带有3个QML图像元素,可循环8个图像文件。我的问题是,这很少使用Symbian设备上的大量内存。所以当有人最小化应用程序时,其他应用程序没有足够的内存空间。我想知道我可以使用什么函数在焦点丢失事件释放缓存。否则,当手机内存不足时,Symbian会关闭我的应用程序。清除QML图像缓存
1
A
回答
2
我刚碰到类似的情况(字面意思)。显然,QML缓存在Qt源代码中深入硬编码。我在http://lists.qt.nokia.com/pipermail/qt-qml/2011-June/002743.html找到相关的帖子。
不幸的是,从该链接派生的解决方案需要修改您的Qt构建。我不知道这是否适合你的情况。
我的当前的想法是,四个常数在SRC /声明/ util的/ qdeclarativepixmapcache.cpp文件的顶部限定的(线66-69,从上述链接引用的)控制时,为什么QML图像缓存改性。我将CACHE_EXPIRE_TIME常量设置为0,因为该文件中的其他逻辑指示将常量设置为0,缓存中的项目立即过期,因此将被删除。随着事态的发展,我会更新这个答案。
编辑:
我建议的解决方案确实有效。在QDeclarativePixmapCache.cpp文件,更改行68
#define CACHE_EXPIRE_TIME 30
到
#define CACHE_EXPIRE_TIME 0
重建Qt和你的应用程序,并且图像不会被缓存(或至少,我看到的行为会表明图像不再被缓存)。有几个缺点与此解决方案:
- 需要修改的Qt源代码树
- 未知的性能影响到整个应用程序 - 不是我的问题,但要考虑的事情。
该解决方案使用Qt 4.7版本。祝你好运!
0
试过只是将图像元素缓存属性设置为false?或者,也许将图像元素缓存属性绑定到应用程序的某些焦点/活动属性?
+0
是的,但根据我的记忆监视器,它不会做任何事情来帮助。也许我只是用错了? – Gerharddc
相关问题
- 1. 清除图像缓存
- 2. 清除xsl图像缓存
- 3. JavaScript缓存清除的图像源
- 4. 如何清除Facebook的图像缓存
- 5. Xcode:SDWebImage清除缓存的单个图像
- 6. 更改图像时清除CATiledLayers缓存
- 7. 清除图像缓存(释放内存)时,图像在XAML
- 8. 清除缓存
- 9. 缓存清除
- 10. Django缓存 - 清除缓存
- 11. 清除缓存后图像不会从磁盘上删除AFNetworking
- 12. 清除帧缓存
- 13. 清除memory_get_peak_usage缓存
- 14. 清除缓存,ObjectCacheManager
- 15. SILEX清除缓存
- 16. repcached清除缓存
- 17. 清除asp缓存?
- 18. 清除缓存7
- 19. 清除PhoneGap缓存
- 20. 清除ADF缓存
- 21. 清除PivotItem缓存
- 22. 清除UITableView缓存
- 23. window.location.reload清除缓存
- 24. 清除缓存7.3
- 25. 清除dom缓存
- 26. 清除ActiveRecord缓存
- 27. 清除bitbucket缓存
- 28. SDWebImage清除缓存
- 29. 清除NSURLConnection缓存
- 30. 清除SDWebImage缓存
谢谢,但我希望有一些更简单和不太长久的事情。 – Gerharddc