android-即使实例在onDestroy()方法中设置为null,活动仍然泄漏

我在主要活动(NavigationActivity)中陷入了内存泄漏

public static NavigationActivity navigationActivity;

public static NavigationActivity getNavigationActivity() {
    return navigationActivity;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_navigation);

    navigationActivity = NavigationActivity.this;

}

@Override
protected void onDestroy() {
    super.onDestroy();
    if (navigationActivity != null) {
        navigationActivity = null;       
    }      
}

它在哪里泄漏?以及如何解决?任何帮助,将不胜感激.非常感谢你.

我正在使用泄漏金丝雀,这就是泄漏
android-即使实例在onDestroy()方法中设置为null,活动仍然泄漏

解决方法:

尝试使用

@Override
protected void onStop() {
    super.onStop();
    navigationActivity = null;
}

但是使用Activity的静态引用是非常糟糕的做法,请不要这样做.

在大多数情况下,您可以使用activity.this引用或类似getActivity()方法的东西.

上一篇:UE4 材质渐变节点 VectorToRadialValue(矢量到径向值)


下一篇:【UE4】修改项目缓存路径,释放C盘