【问题标题】:android application memory leaksandroid应用程序内存泄漏
【发布时间】:2009-12-23 18:25:22
【问题描述】:

我正在使用一种结果搜索引擎,问题是要记住我创建的单例静态类的搜索条件,它只保留一个实例。

在我的应用程序中,有很多类级别的私有变量、很多公共静态变量、一个只包含静态最终方法的大 util 类。

问题是我的应用程序在任何时间任何地方都会崩溃,有趣的是崩溃代码总是被 try{} catch(Throwable e){} 块包围但永远不会捕获,我认为这可能是内存已满的问题。

我想讨论一个示例案例,在结果页面上我还显示与结果相关的图像,我从网络下载图像并使用 drawable 我将图像放置在图像视图中,我创建静态哈希图以重用图像,在下载 5 后的一段时间图像应用程序崩溃有时单击结果让用户进入新的详细信息屏幕会崩溃并且所有代码都被 try catch 块包围,我是移动程序的新手,这对我来说已经成为噩梦。

最后一件事,在模拟器上几乎没有应用程序崩溃,但是当我尝试在设备上测试应用程序时,我正在使用支持的三星 glaxy android 来测试应用程序,它运行顺利,突然开始崩溃,崩溃后 android 重新启动活动这会在每次点击时引发空指针异常并被 try{}catch{} 块捕获,我认为在崩溃 android 后释放所有对象只保留 UI 对象,这就是为什么当崩溃后我自动启动活动点击会导致空指针异常。

我怎样才能停止重新启动崩溃的活动????

【问题讨论】:

  • LogCat 输出说明了什么?

标签: android memory-leaks


【解决方案1】:

以下是一些可能有助于追踪您的问题的建议:

  • 引入日志记录 - 使用 Log 记录有用(调试)信息
  • 避免空的 catch 块 - 使用 Log.e() 记录您的异常
  • 将功能降至最低以进行调试

为了在 Stackoverflow 上获得有用的答案,您必须完成上述所有操作并提供更详细的问题描述(例如,在您的 logcat 输出中提供特定的堆栈跟踪)。

另外,还有一篇关于Avoiding Memory Leaks 的文章可能会让您感兴趣。

【讨论】:

  • 在这样做的同时,您可能会自己找到问题的原因。
  • @josef 我很欣赏你的回答,但你已经在 2009 年回答了所以如果你有任何新的问题需要解决,请告诉我,因为我正在分析我们现有的应用程序安卓平台。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-01
  • 2016-03-28
  • 2010-11-27
相关资源
最近更新 更多