我有一個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