可以将Context作为参数传递给静态帮助器方法可能导致内存泄漏吗?

时间:2014-05-13 08:12:11

标签: java android

我有一个由各种静态方法组成的辅助类,其中一种方法需要Context才能访问某些信息。将Context作为参数传递给静态辅助方法可能会导致内存泄漏吗?

public class ConnectionHelper {
    public static boolean isConnected(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        return cm != null;
    }
}

静态方法如何表现,是在执行后处理上下文引用还是后续在内存中挂起?

2 个答案:

答案 0 :(得分:5)

取决于你对传入的Context引用做了什么。

如果您无限期地存储参考,它将泄漏。与static无关。 (虽然使用静态变量很容易意外地存储引用很长时间。)

您发布的代码不会在方法范围之外的任何地方存储引用,也不会泄漏。

答案 1 :(得分:0)

您提供的代码段不存储任何内容,因此不会泄漏。

但通常情况下,如果您传递Activiy并存储它,可能会导致内存泄漏。 然后整个活动与所有视图,图像和一切都不会被垃圾收集。

您必须注意只传递应用程序上下文。