我的应用程序使用 uiwebview 加载 html5 页面时遇到问题,该页面上有一个带有一些图像的画布。我不知道 html5 何时静态加载,但是当我使用来自 JQuery 的触摸事件放大画布上的图像时,内存分配开始迅速从 2mb 增加到 8 或 10mb。即使 uiwebview 被释放,高内存分配也不会减少。
有没有人遇到过这个问题?
我的应用程序使用 uiwebview 加载 html5 页面时遇到问题,该页面上有一个带有一些图像的画布。我不知道 html5 何时静态加载,但是当我使用来自 JQuery 的触摸事件放大画布上的图像时,内存分配开始迅速从 2mb 增加到 8 或 10mb。即使 uiwebview 被释放,高内存分配也不会减少。
有没有人遇到过这个问题?
没有理由相信这是实际的内存泄漏。它很可能是 WebKit 缓存数据。相关的事情是当应用程序收到内存警告时释放内存的天气。您可以使用此代码段强制内存警告:
[[UIApplication sharedApplication] performSelector:@selector(_performMemoryWarning)];
只有在调试时才这样做!如果您使用此方法调用提交应用程序,它将被 Apple 拒绝。
您可以创建一个按钮来触发内存警告,或者使用计时器每隔几秒触发一次。当内存警告被触发时,你应该看到内存被释放(很可能即使 web 视图还没有被释放)。