在App运行时保持数据的持久性通常有以下几种解决方法:
// 保存数据
SharedPreferences preferences = getSharedPreferences("myPrefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("key", "value");
editor.apply();
// 读取数据
String value = preferences.getString("key", "");
// 保存数据
String data = "Hello, World!";
try {
FileOutputStream fileOutputStream = openFileOutput("myFile.txt", Context.MODE_PRIVATE);
fileOutputStream.write(data.getBytes());
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// 读取数据
try {
FileInputStream fileInputStream = openFileInput("myFile.txt");
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line);
}
fileInputStream.close();
String result = stringBuilder.toString();
} catch (IOException e) {
e.printStackTrace();
}
// 创建数据库
SQLiteDatabase database = openOrCreateDatabase("myDatabase.db", Context.MODE_PRIVATE, null);
database.execSQL("CREATE TABLE IF NOT EXISTS myTable (id INTEGER PRIMARY KEY, name TEXT)");
// 插入数据
database.execSQL("INSERT INTO myTable (name) VALUES ('John')");
database.execSQL("INSERT INTO myTable (name) VALUES ('Tom')");
// 查询数据
Cursor cursor = database.rawQuery("SELECT * FROM myTable", null);
if (cursor.moveToFirst()) {
do {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
// 处理数据
} while (cursor.moveToNext());
}
cursor.close();
database.close();
这些方法可以根据实际需求选择合适的方式来保持数据的持久性。