【问题标题】:How can I fix an OutOfMemory error in java?如何修复 Java 中的 OutOfMemory 错误?
【发布时间】:2025-12-18 08:00:02
【问题描述】:

我有 8 个不同的活动,它们在随机单击按钮时相互打开。单击打开新活动的按钮大约 15 次后,它会崩溃。我需要关闭活动还是有其他解决方案?

【问题讨论】:

  • 也许先解决他们重复打开对方的问题?
  • 我希望它这样做。我想要一个连续的循环。我正在寻找类似于随机播放和重复所有音乐播放器的东西,除了活动。还是我应该在一个活动中完成所有这些工作?
  • 您应该希望通过更少的活动来解决这个问题......

标签: java android android-studio android-activity out-of-memory


【解决方案1】:

正如 Harsh Pandey 所说,您可能希望研究使用片段而不是活动。另一种可能的方法是在您开始下一个活动后立即致电finish();。这将关闭上一个活动。但是,如果您打算使用后退按钮或其他东西返回此活动,则它不会存在。

【讨论】:

    【解决方案2】:

    当您创建新的活动并关闭它们时,GC 会在需要时自动清理旧活动使用的内存。您遇到内存不足错误,因为,

    • 您的活动阻止了一个仍然存在的引用。这将阻止 GC 清理旧的活动。

    例如,

    • 查找未正确清除的动画。

    解决这个问题的最好方法是找到内存泄漏。

    https://developer.android.com/studio/profile/investigate-ram.html

    建议:

    正如 3kings 所说,尝试在一项活动中完成。即使用片段!!

    【讨论】:

      【解决方案3】:

      您可以通过在清单中添加以下内容来请求更多堆大小:

      android:largeHeap="true"
      

      但是,根据您的评论,我猜这种情况非常适合片段,而不是活动。您可以在一个 Activity 中使用多个可重复使用的片段来完成所有这些工作。

      【讨论】:

        最近更新 更多