2011-11-15 79 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

相關問題