可以將數據儲存在內置或可移動存儲,數據庫,網絡,sharedpreference。
android可以使用Content provider來使你的私有數據暴漏給其他應用程序。
一.sharedpreference
得到sharedpreference的兩種方法:
1.getSharedPreferenced():使用這個方法你可以定義多個preference文件
2.getPreferenced():只創建一個preference文件
sharedpreference不是嚴格用來儲存“用戶配置”的,比如說儲存用戶的鈴聲。若你的應用程序對創建用戶配置感興趣,可以使用PreferenceActivity、
二.內置儲存
創建並寫一個文件的步驟:
使用openFileOutPut得到FileOutputStream,通過這個流來寫數據。
從內置儲存讀數據步驟:
使用openFileInput得到FileInputStream,通過這個流來讀數據。
如果你想在編譯的時候在你應用中保存一個靜態的文件,可以保存在res/raw/路徑,通過調用openRawResource傳入R.raw.<filename>打開。
如果你想緩存數據而不是將數據持久化,那當你想緩存數據時可以使用openCacheDir()來打開一個內部儲存空間的文件。
當設備的內置儲存空間不足時,Android會刪除這些文件來恢復空間。然而你不必主動刪除這些文件,但是你應該對緩存文件佔的空間大小做個限制,不如說1M.
其他有用的方法:
getFileDir():得到你內置文件的絕對路徑。
getDir()創建(或打開一個存在)的路徑。
deleteFile()刪除一個內置文件
fileList()返回當前應用程序中所有內置文件列表
三.外部儲存
如果你既想write外部儲存,又想read外部儲存,只需請求 WRITE_EXTERNAL_STORAGE
的權限。
<manifest ...> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" /> ... </manifest>(當版本低於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生命週期不再使用的緩存
四.使用數據庫
五.使用網絡