android – 将Activity或Context传递给其他实例
作者:互联网
你能告诉我最好的做法是将活动或上下文传递给其他实例(;)
但…,
>最好通过什么?活动或背景
>将活动视为全局(公共静态活动活动)是个好主意
here是我的代码.你会改变什么? (基于良好的Android实践)
解决方法:
将Activity传递给另一个不特别需要Activity对象的对象通常是个坏主意. Activity扩展了Context,因此它可以满足需要Context的方法.
在您的情况下,您可以从传递给方法的View中获取Context.但是,如果您需要将Context用于其他目的,则应避免传递Activity并执行类似Activity.getApplicationContext()的操作.
这样做的原因是,如果将活动传递给Activity的对象的生命长于活动,则对Activity的引用将阻止Android执行正确的垃圾收集(GC)并消耗不必要的内存.这称为“内存泄漏”.
编辑:
要处理需要调用Activity.findViewById()的情况,请记住这些事项.首先,这是一个View方法(http://developer.android.com/reference/android/view/View.html#findViewById(int)),所以一定要从正确的视图中调用它.
其次,如果您需要来自活动的视图,则应将其作为WeakReference传递
标签:android,android-context,android-activity 来源: https://codeday.me/bug/20191002/1840793.html