如何在没有内存泄漏的单例类中保存Button引用

时间:2017-05-12 16:43:51

标签: android memory-leaks singleton

我有一个单身' util'类。这个类使用UI元素(使用一些自定义按钮,edittext等)进行大量操作,因此每次使用util类时传递所有ui对象的引用都会非常不舒服。 所以我创建了一个'设置'方法,如

    public void setStatusButtons (Button button1, Button button2, etc... ) {
    this.mButton1 = button1;
    this.mButton2 = button2;
    etc...
}

然后,如果我想使用它们,只需使用mButton1,mButton2 ...字段。

但是这个解决方案存在问题。它可能导致内存泄漏。 足以创造一个免费的'方法(并在onDestroy()或类似的东西中调用它),如:

 public void freeObjects () {
    this.mButton1 = null;
    this.mButton2 = null;
    etc...
}

或者它是一个非常可怕和hacky的解决方案,有一些更好的? :)

在util类中,我现在有15种方法(这个数字在项目结束时可能更多),所以我真的不想每次都通过UI对象的引用,如果我没有必要。

感谢。

1 个答案:

答案 0 :(得分:0)

  

或者它是一个非常可怕和hacky的解决方案,并且有一些更好的

摆脱单身人士。然后:

  • 使用继承,您的活动/片段扩展了一些具有实用程序代码的基类

  • 或者,使用composition,您的活动/片段使用实用程序代码创建类的实例,而不是只有一个全局内存泄漏实例