gpt4 book ai didi

android - 在 WebView 中捕获 Flash 内存不足错误?

转载 作者:行者123 更新时间:2023-11-29 00:46:30 28 4
gpt4 key购买 nike

将某些 .swf 文件加载到 WebView 时,在 flash 文件开始显示后的一瞬间,我的应用程序关闭并出现 Signal 11 错误。我可以看到没有异常被抛出。 <强> Example LogCat dump here .

将相同的 .swf 文件加载到标准的 Android 浏览器中时,系统不会关闭,而是会显示一个错误图标。触摸它会打开一个弹出窗口,指出:“Adobe Flash;内存不足”

我的问题是:有没有办法在 SIGSEGV 发生之前捕获内存不足错误——防止任务被终止——就像普通浏览器所做的那样?任何帮助将不胜感激!


注意:我正在 Android 2.2 下使用 HTC 版本的 Flash 插件进行测试,但在其他非 HTC 设备上似乎也会出现同样的问题。我将 swf 文件直接加载到 WebView 中,使用:

webView.loadUrl("http://whatever.com/bla.swf");

(启用插件和 JavaScript)。它在大多数情况下都能完美运行——只有少数文件会导致问题。我尝试了各种减少内存的建议(例如清除 WebView 缓存)但没有成功。

最佳答案

另一种解决方案可能是使用后台任务或服务来监控设备上的内存使用情况,如果系统告诉您内存不足,请终止闪存 Activity 。

要知道您的内存是否不足,您可以使用以下代码:

ActivityManager activityManager = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE);
MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
activityManager.getMemoryInfo(memoryInfo);

boolean onLowMemory = memoryInfo.lowMemory;

或者您可以使用 memoryInfo.availMem 检查可用内存,如果它太低(接近 memoryInfo.threshold)会在异常发生前终止您的 Activity 。

关于android - 在 WebView 中捕获 Flash 内存不足错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6069866/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com