2014-07-22 108 views
0

如果我的應用程序使文件&將其存儲在應用程序的內部存儲器中,即在路徑<internal_storage>/data/data/<package>中,如果我卸載應用程序將我存儲的文件從位置中刪除?如果我給任何模式寫入文件(world_readable,world_writable似乎已被廢棄),任何應用程序(如文件管理器)都可以查看我創建的文件?我對這個話題做了大量的研究,這對我沒有太大的幫助。Android和內部存儲內存

回答

1

如果我卸載應用程序將我存儲的文件從位置刪除?

是的。

同時在寫入文件時,如果我給任何模式(world_readable,world_writable似乎已被棄用),像文件管理器的任何應用程序都可以看到我創建的文件?

  • MODE_PRIVATE:默認模式,其中所創建的文件只能通過調用應用程序(或共享相同的用戶ID的所有應用程序)訪問。

  • MODE_APPEND:與openFileOutput(String, int)一起使用,如果文件已經存在,則將數據寫入現有文件的末尾而不是將其擦除。

  • MODE_WORLD_READABLE:允許所有其他應用程序對已創建文件具有讀取訪問權限。

  • MODE_WORLD_WRITEABLE:允許所有其他應用程序對創建的文件具有寫入權限。

在過去的兩個模式(這兩者都是不建議使用),下面應該考慮:

創建世界可讀的文件是很危險的,容易造成 安全漏洞應用。強烈不鼓勵;相反, 應用程序應使用更正式的交互機制,如 ContentProviderBroadcastReceiverService。沒有 保證此訪問模式將保留在文件上,例如 它經歷備份和恢復。

+0

有什麼方法可以將數據存儲在平板電腦的內存中,這些數據在應用程序卸載時不會丟失? – user3773828

+0

內部存儲,沒有。您可以將其保存到外部存儲設備,並知道隨時可能會被刪除/丟失。也許考慮使用網絡來存儲和檢索自己的基於Web的服務的數據? – curtisLoew

+0

通過內部存儲我的意思是設備的二級存儲器,這是與設備捆綁在一起的2 GB大容量內存,如果我無法訪問該設備,我無法以與訪問SD相同的方式訪問它的原因是什麼卡? – user3773828