【发布时间】:2015-04-24 08:29:31
【问题描述】:
在我的应用程序中,我覆盖了 onLowmemory 方法。 每次都会调用它。而且我的手机卡住了。这种方法如何释放内存。
我正在使用以下代码:
@Override
public void onLowMemory() {
// TODO Auto-generated method stub
super.onLowMemory();
System.out.println("*************************************************");
System.out.println("********** on low memory ************************");
System.out.println("*************************************************");
System.gc();
}
仅使用 system.gc ...谢谢。
【问题讨论】:
-
你不应该使用 System.gc();,找到什么消耗你的内存(可能是大图像)
-
你读过Javadoc for
onLowMemory()吗? “你应该实现这个方法来释放你可能持有的任何缓存或其他不必要的资源。从这个方法返回后系统将为你执行垃圾收集。” 所以,1)调用@ 987654325@ 没用,并且 2)您应该释放驻留在内存中的所有缓存/资源,这些缓存/资源并非绝对需要让您的应用程序正常运行(即可以从磁盘/数据库/网络等重新加载的东西)。 -
当整个系统内存不足时调用此方法,并且正在运行的进程应该修剪它们的内存使用量。虽然没有定义调用它的确切时间,但通常会在所有后台进程都被杀死时发生。也就是说,在达到终止进程托管服务和前台 UI 之前,我们希望避免终止。阅读android官方文档developer.android.com/reference/android/app/…
标签: android performance low-memory android-applicationinfo