2014-05-25 119 views
0

刚刚测试我的应用程序,我注意到玩了一段时间后,与MAT的手机,我有内存泄漏。我的第一个想法是,将背景图像放置到相对布局将是问题,并且在删除xml文件中的android:background="@drawable/abc"行后,内存泄漏问题消失了。内存泄漏从位图

我知道我有打电话给回收上,我使用的位图,但这样做之前,我有一些问题:

  1. 是否确定要设置布局的代码,因为这里面的布局的背景图像:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/abc"? 
    > 
    
  2. 或者只是将ImageView设置为XML,然后将其设置为背景可绘制?

+0

规模下降ABC。 – Raghunandan

+0

你指的是加载一个缩小版本到内存? – BugaIulian

+0

是按照文档.. – Raghunandan

回答

1

内存被占用。但是,如果您在设计活动为destroyed时设法释放它们,则几乎会发生内存泄漏问题。

在您的onDestroy()方法中输入以下代码。

relativeLayout.setBackroundResource(null); 

这将删除相对布局的背景。

编辑

relativeLayout.setBackground(0); 

将背景设置为给定的资源。该资源应该引用可绘制对象或0来移除背景。

参考:setBackgroundResource

+0

刚刚测试过,它的工作原理。如果我不会重用该活动,我可以在OnPause()方法中使用此行吗? – BugaIulian

+0

是的,你可以使用它。但是在活动被破坏之前,这将显示你一个黑色的背景。最好的方法是在'onDestroy()'中使用。在活动被破坏之后,Coz会被摧毁。所以没有人会看到你已经删除了背景。 –

+1

在这里感谢所有的答案。 – BugaIulian

0

它已经没有意义了。你可以做到这一点无论哪种方式.. 你可以以后refernece位图(SRC),并使用循环时,活动created

+0

即使图像背景设置在相关布局中? – BugaIulian

+0

是的..这将是相同的影响,并将以相同的方式填充.. – Aviad

+0

非常感谢您的帮助。 – BugaIulian