你能告诉我将activity
或context
传递给其他实例的最佳做法是什么吗(;)
但是...,
- 最好通过什么?
Activity
或Context
- 将
Activity
作为全局(公共(public)静态 Activity Activity )是个好主意
here是我的代码。你会改变什么? (基于良好的安卓实践)
最佳答案
将 Activity
传递到另一个不需要 Activity
对象的对象通常不是一个好主意。 Activity
扩展了 Context
,因此它可以满足需要 Context
的方法。
在您的情况下,您可以从传递到方法中的 View
获取 Context
。但是,如果您出于其他目的需要 Context
,则应避免传递 Activity
并执行类似 Activity.getApplicationContext()
的操作。
这样做的原因是,如果您将 Activity
传入的对象的生命周期比 Activity
长,则对 Activity
的引用将阻止Android 执行适当的垃圾收集 (GC
) 并消耗不必要的内存。这称为“内存泄漏”。
编辑:
要处理需要调用 Activity.findViewById()
的情况,请记住这些事项。首先,这是一个 View
方法 ( http://developer.android.com/reference/android/view/View.html#findViewById(int) ),所以一定要从正确的 View 调用它。
其次,如果您需要来自Activity
的View
,您应该将它作为WeakReference
关于android - 将 Activity 或 Context 传递给其他实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33162348/