绑定线程,进度条和outofresourcesexception



我正在对应用程序进行压力测试。这是我的场景

1)从我的工作线程,我显示了一个进度条(我正在传递一个消息到在ui上创建的处理程序)。我在工作线程上等待,直到pd.show()被调用,然后恢复工作线程

2)在工作线程上执行一个操作

3)取消进度对话框。同样,我将消息传递给在ui上创建的处理程序,并等待工作线程直到pd。叫做

为了进行压力测试,我将其放入10000次迭代循环中。在我的Nexus one上,一切都运行得很好。在galaxy tab和所有摩托罗拉设备上,经过大约50次迭代后,我的应用程序会强制关闭。我看到BinderThreads慢慢增长到16并停止增长(我知道16是BinderThreads的最大限制)。在Nexus One上,这些会在之后造成任何问题。我在galaxy tab和moto设备的logcat中得到了这个

 W/WindowManager( 1363): OutOfResourcesException creating surface
 I/WindowManager( 1363): Out of memory for surface!  Looking for leaks...
 W/WindowManager( 1363): No leaked surfaces; killing applicatons!

编辑:在取消进度对话框后,我将其设置为null,以确保它没有抓住任何东西。

任何想法?

谢谢,

Veeresh

也许你没有足够的内存来创造更多的表面!

在我的例子中,我有一个可能产生95个对话框的bug,这是进度条指示器的表兄弟。因此,这导致了我的out of resources异常

尝试禁用此活动的hw渲染。

可以帮助解决HW加速导致的异常。

我最近在我们的应用程序中修复了类似的问题。

但是要解决这个问题的原因可能真的很难。(

相关内容

  • 没有找到相关文章

最新更新