我有一个由各种静态方法组成的辅助类,其中一种方法需要Context才能访问某些信息。将Context作为参数传递给静态辅助方法可能会导致内存泄漏吗?
public class ConnectionHelper {
public static boolean isConnected(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
return cm != null;
}
}
静态方法如何表现,是在执行后处理上下文引用还是后续在内存中挂起?
答案 0 :(得分:5)
取决于你对传入的Context
引用做了什么。
如果您无限期地存储参考,它将泄漏。与static
无关。 (虽然使用静态变量很容易意外地存储引用很长时间。)
您发布的代码不会在方法范围之外的任何地方存储引用,也不会泄漏。
答案 1 :(得分:0)
您提供的代码段不存储任何内容,因此不会泄漏。
但通常情况下,如果您传递Activiy并存储它,可能会导致内存泄漏。 然后整个活动与所有视图,图像和一切都不会被垃圾收集。
您必须注意只传递应用程序上下文。