Android选择安装应用程序数据的位置

时间:2011-11-15 07:46:08

标签: android sharedpreferences

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

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

然后在我需要获取文件的地方使用此booleans,先获取存储空间然后获取文件。

在我的案例中,任何其他建议都会是更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

我对您的应用程序了解不多,但如果以下内容适用于您的应用程序,我可能会有另一种解决方案。

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

如果是这种情况则摆脱选项。选项总是会分散用户对应用程序主要用途的注意力。只需将您的安装位置设置为自动,然后让用户决定将您的应用放在何处。现在将数据保存到应用的cacheDir

这种方法的优点是:

  • 如果应用程序在SD卡上,则缓存将位于SD卡上;如果应用程序位于内部存储器中,则缓存将位于内部存储器中。
  • 此外,如果用户删除应用程序,数据将被彻底删除。如果数据保存在SD卡上,则一旦用户删除了应用程序,就无法删除此数据。
  • 用户可以在应用程序设置面板中查看应用程序使用的内存量。
  • 如果用户需要内存,她可以通过应用程序设置面板删除所有声明为不重要的文件,而不会意外删除重要文件,如设置