【发布时间】:2011-05-21 10:37:34
【问题描述】:
我在开发一个包含 2 个活动的简单 Android 游戏时注意到了这种行为。
游戏有两个活动,第一个是允许用户选择对手类型、级别等的屏幕,第二个是实际游戏屏幕。 第二个活动创建一个处理所有游戏处理的 GameManager 类的对象。 这个 GameManager 类还创建了一个 CountDownTimer,它开始提示用户输入(超时时游戏默认为对手)。
我注意到,如果用户退出第二个活动(返回第一个活动)然后再次启动新游戏,则前一个计时器仍在运行直到完成。 我已经通过显式取消计时器(从第二个活动的 onDestroy() )来处理这个问题,因为只是将 timerobject 设置为“null”并没有取消计时器。
但是我很好奇为什么即使在我的活动第一次退出后前一个计时器仍在运行? GC 退出时不应该删除第二个 Activity 实例化的所有对象(以及它创建的任何子对象)吗?很高兴知道观察到的行为背后的原因?
TIA
【问题讨论】:
标签: android garbage-collection