Gui*_*ido 29 android android-context
我已经读过,Android应用程序中的一个错误和内存泄漏源是为了保持对Context的长期引用.
但是我不明白是否可以创建一个看起来像这样的类:
public class HelperClass {
private Context context;
public HelperClass(Context context) {
this.context = context;
}
public void myHelperMethod() {
// uses this.context
}
}
Run Code Online (Sandbox Code Playgroud)
并从活动中调用它:
public class MyActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
HelperClass h = new HelperClass(this);
h.myHelperMethod();
}
...
}
Run Code Online (Sandbox Code Playgroud)
dby*_*rne 45
这很好,不会导致内存泄漏.
一旦onCreate完成执行,h将超出范围并成为垃圾收集的资格.如果h是静态的,那么你会遇到问题.只有当对上下文的引用超过上下文本身的生命周期时,才会发生内存泄漏.一些有用的提示:
Context.getApplicationContext()尽可能使用.只要您的应用程序处于活动状态,此上下文就会存在.HelperClass的范围仅在onCreate函数中,因此一旦onCreate执行,就不再需要"h"对象并且需要进行垃圾回收.
如果"h"是一个静态成员,这将是一个不同的故事 - 这将是一个泄漏记忆的好方法.
| 归档时间: |
|
| 查看次数: |
14944 次 |
| 最近记录: |