我正在尝试追踪我的游戏应用程序中的内存泄漏。程序可以正常运行一次,但如果反复运行并关闭,最终会遇到某种内存不足错误。经过多次尝试安装和了解eclipse的内存分析器,我终于生成了下面截图中显示的数据。
我的应用程序基于一个名为SD_globals的单个应用程序:
public class SD_Globals extends Application
{
int example_global_data = 99;
// stuff
}
有五个不同的活动,每个活动都可以访问在SD_Globals中声明的各种全局数据。例如,其中之一是SD_gameplay:
public class SD_GamePlay extends Activity implements View.OnClickListener
{
SD_Globals gs; // gs stands for global state
gs = ((SD_Globals)getApplicationContext());
// now I can access global variable using code like this:
int x = gs.example_global_data;
}
看这个截图中的数据,重复出现的GamePlay看起来很奇怪。我猜可能是每次活动执行时都会创建新的活动,而没有被垃圾回收(我说得对吗?)...如果是这样的话,什么样的事情会导致这种情况呢?
编辑:如果我的解释完全偏离了轨道,那么在图片中是否还有其他可疑之处呢?
![enter image description here](https://istack.dev59.com/OrNer.webp)