0

当我的应用程序第一次启动时,它会出现一个 gridView。当按下此 gridView 的第一项时,它会打开一个下载 xml 文件的新活动,完成后,它会在自定义列表视图中显示其详细信息。

活动将文件存储在:

data/data/mypackagename/something.xml

我做了这个活动来检查这个文件是否存在,所以当它从 main 重新打开时,不必再次下载 xml 文件。这工作正常。当我改变方向时,虽然这个活动仍在运行,然后我按下后退按钮(为了转到主要活动),我在 DDMS 的文件资源管理器中观察到文件被删除了!!!

这个奇怪的事情确实发生了,因为当我重新打开活动时,它会再次下载 xml 文件。我想知道的是,方向变化和内部存储环境的变化之间是否存在联系?

我在关闭应用程序时删除了文件(主要活动中的 onDestroy 方法),这不是问题的原因,因为在关闭第二个活动时文件被删除。

  • 如果我不更改方向,请按后退按钮,然后重新打开文件仍然存在的活动
  • 只有当我改变方向并执行上述操作时,文件才会被删除。
4

1 回答 1

0

我花了一些时间才弄清楚。

当第二个活动改变方向(例如到横向模式)然后我按下后退按钮时,在创建第二个活动之前处于纵向模式的主要活动会破坏自身并重新打开以在横向模式下显示(因为它方向改变后第一次出现在前台)。因此该文件被删除,因为调用 Main.java 中的 onDestroy 方法是为了在第二个活动被销毁后更改其方向。

于 2013-02-18T22:26:34.543 回答