java - 内存泄漏 - 服务调用静态方法
问题描述
我对我的 Java 代码中的内存泄漏有疑问:
我有一个每秒运行的服务(在生产中它每分钟运行一次)当我运行 Android Studio Memory-Profiler 时,我可以看到每次执行此代码时,“分配的内存”值都会增加6
. 所以我猜这段代码泄露了?显然它韭菜很慢,但我想知道那个代码有什么问题?我能做些什么来解决这个问题?或者这是“正常”的行为?
同步服务.java
public class SyncService extends Service {
@Override
public void onCreate() {
Context context = getApplicationContext();
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
if(!Helper.isNetworkAvailable(context)){
Log.i(TAG, "Offline");
return;
}
// ...
}
}, 1000, 1000);
}
}
助手.java
public class Helper {
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager
= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
}
如果我注释掉Helper.isNetworkAvailable(context)
对分配值的调用保持静止。
解决方案
推荐阅读
- java - OpenGL逼真的汽车运动
- unity3d - “最适合”文本选项仅缩小
- rx-java2 - 如何执行为 observable 返回的列表的每个元素返回单个并将其作为列表返回的操作?
- javascript - 如何使用 javascript 删除特定的表行?
- spring - React.js 和 Tomcat
- reactjs - 添加 contentComponent 后,React Navigation 抽屉变为空白
- c# - 创建一个创建动态表达式的方法
- ruby-on-rails - Rails 5.2.1 中的 Activeadmin 1.3.2 问题
- forms - Orbeon 表单,显示下拉菜单的第一个元素
- spring-boot - 将 Spring Boot 部署到 Google App Engine 灵活 env 时出现错误 404