【发布时间】:2015-05-30 06:57:58
【问题描述】:
我有一个非活动类,它在我的活动类中创建了许多视图,例如 ImageView 和 TextView。
为此,我需要将我的活动上下文从activity class 传递给non-activity class。这是我non-activity class的代码-
public class Create {
Activity activity;
Create(Activity act){
activity = act;
}
}
这是一个好习惯吗?我应该像这样使用getApplicationContext()吗?这两种方法有什么区别? -
public class Create {
Context context;
public Create(Context context){
this.context = context.getApplicationContext();
}
}
如果我使用上述方法,会不会有内存泄漏?哪种方法更好?使用后如何销毁上下文以防止内存泄漏?
像这样将Activity/Context 声明为final 或protected 有什么好处-
protected Context context;
或
final Context context;
【问题讨论】:
-
它们之间没有区别。但是如果你想显示一些
Views,比如Progress Dialog或Alert Dialog,那么你应该需要Activity Context。并且告诉你使用任何一种方法都没有内存泄漏。 -
取决于 Create 的生命周期,你什么也没说。整个概念似乎有点不确定。
标签: java android memory-leaks