gpt4 book ai didi

java - 静态存储系统服务会导致内存泄漏吗?

转载 作者:行者123 更新时间:2023-11-29 04:11:51 24 4
gpt4 key购买 nike

我们都知道静态存储上下文对象(应用程序上下文除外)是不好的做法,因为它会导致内存泄漏。但是你能存储从上下文对象派生的系统服务吗?比如ConnectivityManager?

// Is this okay?
static ConnectivityMananger connectivityManager;
...
connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

最佳答案

我建议使用应用程序 Context 来获取这样的系统服务:

connectivityManager = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);

可能所有系统服务都在内部使用应用程序 Context,但这种方法越来越安全,因为需要额外调用方法。

如果系统服务正在使用应用程序Context,则在获取系统服务时不会泄露Context。您是否通过使用系统服务泄漏任何其他内容可能会有所不同。

关于java - 静态存储系统服务会导致内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54633492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com