内存泄漏listview baseadapter

时间:2018-10-31 18:40:18

标签: android memory-leaks android-memory listview-adapter

在下面的代码中,可能有任何内存泄漏问题吗?是否存在活动风险?此代码在listview中包含活动的隐式引用,因此可能在旋转或打开新活动时造成泄漏内存问题? / p>

print (df)
            group   C
color                
red             1   0
blue            1   1
yellow          1   2
orange          1   3
green           1   4
white           1   5
black           1   0
brown           1   1
orange-red      1   2
teal            1   3
beige           1   4
mauve           2  46
cyan            2  47
goldenrod       2  45
auburn          2  48
azure           4  46
celadon         4  47
lavender        5  46
oak             6  46
chocolate       7  46

1 个答案:

答案 0 :(得分:0)

我认为您在这里没有泄漏问题。但是不要对那个TextView使用ApplicationContext,应该使用视图将出现的上下文。

如果您想超级确定,则有两个解决方案。

  1. 使用ArrayAdapter

    如果使用ArrayAdapter,它将为您处理几乎所有这些工作。这是Google制作的内置类,用于简单的列表结构。然后,您将不需要使用应用程序上下文来创建您的视图(不应该这样做,您应该使用当前活动作为上下文)。

    https://developer.android.com/reference/android/widget/ArrayAdapter

    您可能要使用以下构造函数:https://developer.android.com/reference/android/widget/ArrayAdapter.html#ArrayAdapter(android.content.Context,%20int,%20T[])

    1. 在onDestroy()方法中将适配器设置为null。

      如果在OnDestroy中将适配器设置为null,则它将被GC且不会阻止Activity的GC。只需在您的班级中保留对适配器的私有引用。您也可以与第一名一起做,不会伤到任何东西。

我认为这些都不是必须的,像这样的代码是很常见的做法。