[英]Could declaring a static ApplicationContext cause a memory leak ? (Spring 3)
[英]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.