内存泄漏与 setOnClickListener(this) 和 setOnClickListener(new View.OnClickListener(){})

hie*_*pnh 5 android memory-leaks

我阅读了有关避免内存泄漏的信息

为避免上下文相关的内存泄漏,请记住以下几点:

  • 尝试使用context-application而不是context-activity

我有两个问题:

  1. 如果我使用setOnClickListener(this),它会导致内存泄漏吗?
  2. 如果我使用setOnClickListener(new View.OnClickListener(){}),它会导致内存泄漏吗?

Bac*_*ics 0

我想说你可以两者都用。不过,如果您有多个按钮(或任何其他小部件),最好使用第一个解决方案与 getId() 来区分它们,第二个解决方案为每个按钮创建一个不同的侦听器(对象),因此它保留更多内存。我不认为它们中的任何一个会导致内存泄漏,因为当您销毁一个活动并且没有为其留下任何链接时,java GC 会将内存(侦听器对象)返回给 dalvik。

希望能帮助到你:)