哪个上下文?避免内存泄漏

时间:2016-04-05 11:51:21

标签: android memory-leaks android-context

我知道这已被多次询问过,但仍有许多像我这样的新开发人员觉得很困难。要避免memory leaks应该使用哪个context? 在某个地方我发现我们应该getApplicationContext()并尽可能地尝试使用context-activity。还http://android-developers.blogspot.in/2009/01/avoiding-memory-leaks.html

Try using the context-application instead of a context-activity

例如

要传递给RecyclerView AdapterCustom Dialog Class

的上下文

我找到的一种方法是以这种方式将上下文传递给适配器

recyclerview.setAdapter(new YourAdapter(new WeakReference<Activity>(ActivityName).get()));

我传递背景的方式是对的吗?

请做一个详细的解释,以便其他人也受益。 谢谢

1 个答案:

答案 0 :(得分:3)

  

传递给RecyclerView适配器或自定义对话框类的上下文

在处理UI问题时,请务必传递Activity

  

我传递背景的方式是对的吗?

WeakReference中使用Activity时,您不需要RecyclerView

  

为避免内存泄漏应使用哪种上下文?

一般来说,这是无法回答的。最简单的基本规则是:当您担心Application可能保留在Context范围内时,使用Context作为static,例如在static引用的对象中{1}}数据成员,或者在线程中。否则,请使用更专注的Context(例如,您的ActivityService)。

Dave Smith's blog post on contexts是我找到的关于该主题的最佳单页资源。

相关问题