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;
}
}
它在哪里泄漏?以及如何解决?任何帮助,将不胜感激.非常感谢你.
解决方法:
尝试使用
@Override
protected void onStop() {
super.onStop();
navigationActivity = null;
}
但是使用Activity的静态引用是非常糟糕的做法,请不要这样做.
在大多数情况下,您可以使用activity.this引用或类似getActivity()方法的东西.
标签:memory-leaks,leakcanary,android 来源: https://codeday.me/bug/20191026/1938341.html