gpt4 book ai didi

java - static Stack 会导致内存泄漏吗?

转载 作者:行者123 更新时间:2023-11-29 02:35:45 25 4
gpt4 key购买 nike

我创建了一个对象来管理 Activity 。像这样:

public class ActivityManager {
private static ActivityManager instance;
private static Stack<Activity> activityStack;

public void addActivity(Activity activity) {
activityStack.add(activity);
}
}

我在 BaseActivity 中使用它:

public class BaseActivity extends AppCompatActivity {
protected String TAG = "BaseActivity";
protected ActivityManager mActivityManger;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

mActivityManger = ActivityManager.getInstance();
mActivityManger.addActivity(this);

}
}

在此示例中,静态对象持有 Activity 的引用。

这是内存泄漏吗?

为什么 leakcanary 什么都没发生?

如果集合中的添加函数将保存 Activity 的引用?

最佳答案

尝试故意泄露一些东西,例如将您的启动器 Activity 实例分配给静态字段。

或者尝试按回,我相信这会在 Activity 被销毁后触发泄漏(并且会出现 toast )并且 LeakCanary 将检测它是否泄漏。

或尝试引用here另一个样本

关于java - static Stack<Activity> 会导致内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47217495/

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