如何在android中释放内存以避免内存泄漏

当通过Android开发者网站,我发现这一点 它说为了避免内存泄漏,我们应该释放onStop()

它说为了避免内存泄漏,我们应该释放onStop()的资源,但如何做到这一点。

Solutions Collecting From Web of "如何在android中释放内存以避免内存泄漏"

基本上,任何被正确清零的对象都被认为是释放的,并且它们的内存可以被OS收回。 你的问题太笼统了,很难提供详尽的方法列表,但你通常应该知道这些:

  1. 停止/closures您不再需要的任何服务/文件/连接
  2. 不要将任何Drawable存储在任何静态对象中,Drawables持有对其所有者View的引用,这些引用持有对其所有者Activity的引用,所以如果你坚持任何Drawable,你将不必要地保存很多对象/内存
  3. 对于实用的应用程序,你可能不需要担心内存; 但对于使用大量位图的应用程序,您应该对位图pipe理有深入的了解,并且应该如何在您的应用程序中使用位图来有效pipe理它们

有一些臭名昭着的内存猪的例子,媒体(audio/video)和大的位图是最大的内存猪。 通过删除所有的指针来让大部分事情得到处理,并让GC与他们的方式。 但是,通过使用以下位图,可以立即回收位图:

 if (yourBitmap != null) { yourBitmap.recycle(); youBitmap = null; } 

您的媒体应停止和取消引用。 但是应该在onPause()中停止,并且不要离开onStop()。