当我的应用第一次启动时,它会显示一个gridView。当这个gridView的第一个项目被按下时,它会打开一个新的活动,下载xml文件,完成后,它会在自定义列表视图中显示其详细信息。当方向发生变化时,文件将从内部存储器中删除
活性存储在文件:
data/data/mypackagename/something.xml
我做了这个活动,以检查是否该文件存在,所以当它从主重新开放,而不是再次下载XML文件。这工作正常。当我改变方向,而这个活动仍在运行,然后我按下后退按钮(为了去主要活动),我观察DDMS中的文件资源管理器,该文件被删除!
这种奇怪的事情确实发生,因为当我重新打开活动时,它再次下载xml文件。我想知道的是,如果方向更改与内部存储环境的更改之间存在关联?
我关闭应用程序(主要活动中的onDestroy方法)时删除该文件,这不是问题的原因,因为该文件在第二个活动关闭时被删除。
- 如果我不改变方向,然后按返回键,然后重新打开该文件仍然存在
- 活动只有当我更改方向的执行文件被删除了上述行动。
改变方向的唯一方法是停止并销毁您的活动并创建/开始新活动。你是否在onStop或onDestroy中删除了文件? – 2013-02-18 21:37:35
检查你的onConfigChanged,或onStop/onDestroy如上所述,寻找线索。没有代码我们就没有更多的东西可以做了。 – 2013-02-18 21:58:36
“活动将文件存储在” - 您引用的目录不是有效的位置。请使用'getFilesDir()'作为你的内部存储的根目录,这个内存将作为'data/data/mypackagename/files /'结束。 – CommonsWare 2013-02-18 22:14:38