2011-11-15 32 views
0

我想知道一件事:我想在首次安装我的应用程序时询问用户将第一次同步后将收到的数据保存在SD卡或手机内存中,以及让他先移动文件,如果他首先决定将它们存储在手机存储器中,但之后他决定将它们移动到SD卡。我的问题是,这是记住他的选择并根据这个建立我的逻辑的最佳方式。我想使用SharedPreferences保存用户选择:Android选择安装应用程序的数据的位置

editor.putBoolean("isSdCard",true); 
    editor.putBoolean("isPhoneMemory", false); 

,之后使用该booleans无处不在,我需要得到这些文件,以获得第一的存储和再拿到文件。

任何其他建议,这将是一个更好的解决方案在我的情况?

回答

1

我不太了解您的应用程序,但如果以下事项适用于您的应用程序,我可能会有其他解决方案。

  • 您的应用程序完全可以使用SD卡上的move
  • 临时下载的数据,这意味着如果用户想要删除它,它不会损害应用程序,用户可以稍后重新加载数据。
  • 这不是重要的是,用户能够通过一个外部文件浏览

对数据的访问。如果是这样的话摆脱选项。选项总是让用户从主要的应用程序中分心。只需将您的安装位置设置为自动,并让用户决定将应用放在哪里。现在将数据保存到您的应用的cacheDir

这种方法的优点是:

  • 缓存会在SD卡定位,如果应用程序是在SD卡和内部存储器,如果应用程序在内存中。
  • 此外,如果用户删除应用程序,数据将被彻底删除。如果数据保存在SD卡上,一旦应用程序被用户删除,就无法删除这些数据。
  • 用户可以看到您的应用程序在应用程序设置面板中使用了多少内存。
  • 如果用户需要记忆,她可以删除声明为通过应用程序设置面板不是你很重要的所有文件,而不会意外删除重要文件,如设置
+0

其实我只是做了该选项,让用户可以将整个应用于SD卡,但也会移动所有文件。我的意思是我只下载我在应用程序中显示的图像,并且我想让用户选择是否要将它们保存在手机内存或SD卡中。如果我将文件保存到cacheDir并且用户从设置中清除了我的应用程序的缓存,是否也会删除所有图片(我认为是的,我认为这不是我的情况的好解决方案)。有什么建议么? –

+0

如果将图像保存到高速缓存目录,那么如果用户清除高速缓存,它们将被删除。在这种情况下,您可以稍后重新下载图像,因为如果用户需要空间,则用户需要空间,以便删除应用程序未永久使用的所有内容。您也可以将图像保存到数据文件夹,在这种情况下,只有删除数据文件夹时才会删除图像。由于所有的设置文件也被删除,如果数据文件夹被清除,图像的位置也将被删除,并且图像仍然需要重新下载 – Janusz

相关问题