"leaking the Activity" 是什么意思,我该如何预防?

What does "leaking the Activity" mean and how do I prevent it?

我经常看到像"Don't do X this way or else you risk leaking the Activity / Context."

这样的建议

我实际上并不知道 "leaking" 是什么意思,也不知道如何知道您有泄露的风险。谁能详细说说?

泄漏意味着您正在创建一个对象无法被垃圾回收的情况 - 所以即使 activity 已经消失,它仍在内存中并且无法被清理 - 即你是不必要地浪费内存(称为内存泄漏)。

基本上,在这种情况下,它的意思是不要创建对活动的引用,这将阻止活动在完成时被垃圾收集。避免将上下文或 activity 分配给另一个 activity、class、服务等中的变量。或者如果您必须具有上下文,请考虑使用弱引用。

即不要在静态 class 中存储对 activity 的强引用,不要在长 运行 进程中使用对 activity 的强引用,等等