如何在android中释放内存以避免内存泄漏
在浏览android开发者网站时,我发现了这个如何在android中释放内存以避免内存泄漏,android,performance,memory-leaks,Android,Performance,Memory Leaks,在浏览android开发者网站时,我发现了这个 它说为了避免内存泄漏,我们应该在onStop()中释放资源,但如何做到这一点 有几个臭名昭著的内存占用示例,媒体(音频/视频)和大型位图是最大的内存占用。大多数事情都是通过删除所有指向它们的指针并让GC按照自己的方式处理来完成的。但是,可以使用以下方法更直接地回收位图: if (yourBitmap != null) { yourBitmap.recycle(); youBitmap = null; } 您的媒体应该停止并取消引用
它说为了避免内存泄漏,我们应该在onStop()中释放资源,但如何做到这一点 有几个臭名昭著的内存占用示例,媒体(音频/视频)和大型位图是最大的内存占用。大多数事情都是通过删除所有指向它们的指针并让GC按照自己的方式处理来完成的。但是,可以使用以下方法更直接地回收位图:
if (yourBitmap != null) {
yourBitmap.recycle();
youBitmap = null;
}
您的媒体应该停止并取消引用。但是它应该在onPause()中停止,直到onStop()才停止。基本上,任何正确为空的对象都会被视为已释放,操作系统可以回收它们的内存。您的问题过于笼统,很难提供一个详尽的方法列表,但您通常应该了解以下几点:
k我可以删除位图的引用,但是在内存不足时如何删除对象确保你.recycle()你的位图,而不仅仅是删除引用。这将更快地释放你的内存。Kai在他的回答中留下了一些好的观点。drawables呢?所以我应该在
onPause
中将我所有的文本视图和图像按钮设置为空?所以我应该在onPause
中将我所有的文本视图和图像按钮设置为空?@RuchirBaronia没有必要这样做,因为:a。如果只调用onPause(),则操作系统将引用该活动。B如果调用了onDestory(),那么活动及其引用的所有内容都将被释放。只有当某个其他对象或某个类的静态变量获取被释放的活动时,才会发生泄漏。