【问题标题】:Is it a good practice to use Runtime.getRuntime().gc() method in onDestroy() of an Activity?在 Activity 的 onDestroy() 中使用 Runtime.getRuntime().gc() 方法是一种好习惯吗?
【发布时间】:2017-11-06 06:04:31
【问题描述】:
Activity 的

onDestroy() 方法不会减少我的内存使用量。我正在分配一个 Activity 的 onCreate() 内存,但同一个 Activity 的 onDestroy() 不会像 Android Monitor 中那样取消分配内存。

所以,我使用 Runtime.getRuntime().gc() 方法手动清除内存。我在 onDestroy() 方法中调用它。

这是一个好习惯吗?

【问题讨论】:

  • 这毫无意义。 gc() 只是一个请求,而不是一个实际的命令。如果你调用它,而 JVM 看不到任何运行垃圾收集器的理由,它就不会。
  • 永远不需要手动调用gc(),除非您尝试修复代码的内存管理行为的实际可观察​​到的问题。
  • 不需要调用 System.gc();
  • 当我打开一个新活动时,内存分配发生了。如果我来回走动,记忆就会不断堆积。所以,我调用这个方法来清除内存,因为这会导致内存溢出异常
  • 如果发生这种情况,您的活动中有泄漏

标签: java android memory memory-management garbage-collection


【解决方案1】:

我使用的是 Runtime.getRuntime().gc() 方法手动清除内存

这不会“清除内存”。

当我打开一个新活动时,会进行内存分配。如果我来回走,内存会不断堆积

然后你有某种形式的内存泄漏。使用development tools 确定问题出在哪里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多