【发布时间】: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