0

我正在构建一个 Android 应用程序,我正在使用在 Splash Activity 期间填充的静态数组列表,以便我可以在整个应用程序中使用它。但是当我退出并重新进入应用程序时,这个数组仍然充满了它以前的内容。请问这是怎么回事?

4

2 回答 2

5

如果它是静态的,则只有在持有它的类完全从内存中卸载时才会将其删除。这可能不会立即发生,但会在未来的某个时候发生。当您知道不再需要它时,您应该手动清除它。或者将数据存储在其他地方。

如果你真的要通过 ADB 杀死你的进程(不仅仅是退出你的活动),你会注意到数据将会消失。

于 2013-01-03T17:47:41.780 回答
1

没有更多细节很难确定,但我的猜测是您可能在某处引用了您的上下文,因此您的应用程序永远不会被关闭,因此当您重新运行它时,您会在那里看到相同的数据,因为它正在使用相同的对象。

您可以通过进入手机上正在运行的进程部分或通过 adb 查看该进程是否仍然存在来确认这一点。通常的原因是有一个drawable并且在退出之前没有清除它的回调,它保留了对上下文的引用,因此将保留到您的应用程序的链接。如果您的静态变量在您的活动中声明,则意味着它仍然存在。

于 2013-01-03T17:52:05.667 回答