SharedPreferences
理解
SharedPreferences是一个轻量级的存储辅助类,可用来保存应用的一些常用配置,最终数据以xml形式(key-value)进行存储。
简单使用
运用
getSharedPreferences
或getPreferences
获取应用的SharePreferences对象。若要写入值:调用
edit()
以获取SharedPreferences.Editor
。调用putBoolean()
和putString()
等方法添加值。使用commit()
提交新值。若要读取值,请使用
getBoolean()
和getString()
方法。
注意事项
- 不要每次都edit,因为每次都会创建一个新的Editorlmpl对象,最好是批量处理统一提交。
2.SharedPreferences 不能跨进程通信(源码中Context.Mode_MULTI_PROCESS
仅仅是重新加载了一遍数据到内存mMap中) https://www.jianshu.com/p/8eb2147c328b。
3.记得提前初始化SharedPreferences。
内部存储
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
/MODE_PRIVATE MODE_APPEND
MODE_WORLD_READABLE MODE_WORLD_WRITEABLE/
fos.write(string.getBytes());
fos.close();
/*同理 openFileInput() ;read(); colse();是从内部存储读取文件
*/
/*
保存缓存文件
getCacheDir();
*/
/*其他实用方法:
getFilesDir();
getDir();
deleteFile();
fileList(); //返回你的应用当前保存的一系列文件
*/
注:自 API 级别 17 以来,常量MODE_WORLD_READABLE
和MODE_WORLD_WRITEABLE
已被弃用。从 Android N 开始,使用这些常量将会导致引发SecurityException
。这意味着,面向 Android N 和更高版本的应用无法按名称共享私有文件,尝试共享“file://”URI 将会导致引发FileUriExposedException
。如果您的应用需要与其他应用共享私有文件,则可以将FileProvide
与FLAG_GRANT_READ_URI_PERMISSION
配合使用。另请参阅共享文件。
外部存储(SD卡上的文件读写)
首先得获取读写权限。
在使用外部存储执行任何工作之前,应始终调用getExternalStorageState()
以检查介质是否可用。介质可能已装载到计算机,处于缺失、只读或其他某种状态。
SQLite 数据库
创建新 SQLite 数据库的推荐方法是创建SQLiteOpenHelper
的子类并覆盖onCreate()
方法,在此方法中,您可以执行 SQLite 命令以创建数据库中的表。 例如:
public class DictionaryOpenHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 2;
private static final String DICTIONARY_TABLE_NAME = "dictionary";
private static final String DICTIONARY_TABLE_CREATE =
"CREATE TABLE " + DICTIONARY_TABLE_NAME + " (" +
KEY_WORD + " TEXT, " +
KEY_DEFINITION + " TEXT);";
DictionaryOpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DICTIONARY_TABLE_CREATE);
}
}
网络连接
使用以下包中的类:
java.net.*
android.net.*
官方文档:https://developer.android.com/guide/topics/data/data-storage