繁体   English   中英

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

[英]Could passing Context to a static helper method as an argument potentially cause a memory leak?

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

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

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

取决于您对传入的Context引用所做的操作。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM