2015-02-05 204 views
-1

我想阻止我的文件被用戶或任何其他應用程序刪除。在這個文件中,我必須保存一個很長的值和一些信息。我已經使用了SharedPreferencesSQLite數據庫來存儲這些信息。但我注意到,如果我的應用程序得到卸載或清除數據,數據庫或SharedPreferences也被刪除。現在我正在考慮將數據保存在該文件中,並保護它免受任何類型的刪除。這樣即使在卸載後,我的應用程序也可以隨時恢復數據。可能嗎?即使在Android中卸載應用程序後,如何防止文件被刪除?

+1

爲了在卸載後保留下來,您應該將數據保存在外部存儲上,但無法防止用戶刪除或格式化數據。 – 2015-02-05 18:33:11

+3

聽起來就像你試圖執行一些持續的許可或試用期。如果你想創建一個永久性的值,你就不得不離開你的應用的沙箱;在最近的Android版本中,訪問外部存儲已經受到了很大的阻礙。您可能想要跟蹤這些值,而不是設備。 – 323go 2015-02-05 18:33:49

+1

只需複製服務器上的信息。 – 2015-02-05 18:35:10

回答

2

您能夠做的最好的事情就是將數據保存爲Android文件系統上的文件。你需要寫外部存儲許可添加到您的清單:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

退房的Android文件API在這裏:http://developer.android.com/reference/java/io/File.html

這是比較簡單的。您需要將文件保存在卸載應用程序時不會被刪除的地方,因此可能位於SD卡上的文件夾中。

但是,並不能保證用戶或其他應用程序(儘管我不知道有多少應用程序會刪除任意文件)不會手動刪除文件。如果您確實需要保證超持久性,那麼我建議將這些文件存儲在雲端或服務器上。

+0

你能否提供一些雲存儲教程。我看過一些代碼。但我不清楚。 – 2015-02-05 18:56:46

+0

這將涉及更多,並將取決於您想要實現的目標。你最好的選擇是將文件存儲在某個地方的服務器上,以某種方式與用戶相關聯(可能是他們的用戶帳戶或他們的設備ID)。如果你只是想恢復用戶設置或類似的東西,那麼存儲在設備上應該適合你的需求。 如果323go是正確的,並且您嘗試創建類似「試用期」的內容,那麼使用服務器進行身份驗證比嘗試在客戶端執行所有操作要好得多。 – gcgrant 2015-02-05 19:02:26

相關問題