我正在尝试降低我的应用程序运行到JsonNode
的风险,而我目前正专注于将变量初始化作为快速解决方案。
例如,
ObjectNode meta_info = JsonNodeFactory.instance.objectNode();
meta_info.set("field name", student.getName());
每当调用此方法时,每次都会创建这些变量的新实例吗?如果是这样,我什么时候完成它会使它们无效?
我也试过改变变量的范围,但是我需要传递一个上下文(我从方法中得到),而且我不确定如何在全球范围内这样做。
答案 0 :(得分:1)
也许这不是提供代码解决方案的确切答案,但是您要求在应用程序中处理/检测内存泄漏的一般解决方案,对吗?
Godmaster Jake Wharton发布了一个很好的工具来检测潜在的内存泄漏: 它被称为LeakCanary
在您的应用中集成非常简单! (但要小心,不要将其添加到发布中!!!)
在github page上,介绍了如何将LeakCanary集成到您的应用中:
在build.gradle中:
dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4'
}
在您的Application类中:
public class ExampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
LeakCanary.install(this);
}
}
Sooooo ......但是现在你有泄漏,下一步是什么? 根据我的个人经验,请注意做这样的事情:
onPause()
或onStop()