可以將資料儲存在內建或抽取式存放裝置,資料庫,網路,sharedpreference。
android可以使用Content provider來使你的私人資料暴漏給其他應用程式。
一.sharedpreference
得到sharedpreference的兩種方法:
1.getSharedPreferenced():使用這個方法你可以定義多個preference檔案
2.getPreferenced():只建立一個preference檔案
sharedpreference不是嚴格用來儲存“使用者配置”的,比如說儲存使用者的鈴聲。若你的應用程式對建立使用者配置感興趣,可以使用PreferenceActivity、
二.內建儲存
建立並寫一個檔案的步驟:
使用openFileOutPut得到FileOutputStream,通過這個流來寫資料。
從內建儲存讀資料步驟:
使用openFileInput得到FileInputStream,通過這個流來讀資料。
如果你想在編譯的時候在你應用中儲存一個靜態檔案,可以儲存在res/raw/路徑,通過調用openRawResource傳入R.raw.開啟。
如果你想快取資料而不是將資料持久化,那當你想快取資料時可以使用openCacheDir()來開啟一個內部儲存空間的檔案。
當裝置的內建儲存空間不足時,Android會刪除這些檔案來恢複空間。然而你不必主動刪除這些檔案,但是你應該對快取檔案占的空間大小做個限制,不如說1M.
其他有用的方法:
getFileDir():得到你內建檔案的絕對路徑。
getDir()建立(或開啟一個存在)的路徑。
deleteFile()刪除一個內建檔案
fileList()返回當前應用程式中所有內建檔案清單
三.外部儲存
如果你既想write外部儲存,又想read外部儲存,只需請求 WRITE_EXTERNAL_STORAGE 的許可權。
...
(當版本低於18的使用添加許可權)
從Android4.4開始,若想使用應用程式的私人檔案不許要讀寫外部儲存的許可權。
可以通過將檔案放入Music/,Pictures/,RingTone/來和其他應用分享這個檔案。
若你不想系統的多媒體瀏覽器可以瀏覽你的多媒體檔案,可以在你的檔案夾中添加.nomedia的檔案。
得到公用檔案夾的方法 getExtenrnalStoragePublicDirectory()將參數DIRECTORY_MUSIC/DIRECTORY_PICTURES/DIRECTORY_RINGTONE傳入。
以下為在公用圖片檔案夾下添加一個相簿:
public File getAlbumStorageDir(String albumName) { // Get the directory for the user's public pictures directory. File file = new File(Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs()) { Log.e(LOG_TAG, "Directory not created"); } return file;} 你可以使用getExtenrnalFileDir()在外置儲存中得到私人多媒體儲存路徑
當使用者刪除你的應用的時候這些檔案將會被刪除
這些檔案不會被系統的多媒體瀏覽器發現但是對於有READ_EXTERNAL_STORAGE許可權的應用是可access的。
通過getExternalCacheDir()來得到外置儲存空間的緩衝區。當應用程式被卸載時,這些檔案也將被刪除。
需要仔細管理緩衝區,刪除那些在你app生命週期不再使用的緩衝
四.使用資料庫
五.使用網路