我想在我的应用程序中实现脱机数据存储功能。即使用户从App Manager清除数据,甚至在用户卸载应用程序时,情景也会像存储数据一样。
我正在使用以下代码来创建数据库和表格。
var db = window.openDatabase("../../../../storage/emulated/0/test.db", "1.0", "Test DB", 1000000);
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS DemoTable (name, score)');
tx.executeSql('INSERT INTO DemoTable VALUES (?,?)', ['Alice', 101]);
tx.executeSql('INSERT INTO DemoTable VALUES (?,?)', ['Betty', 202]);
}, function(error) {
console.log('Transaction ERROR: ' + error.message);
}, function() {
console.log('Populated database OK');
});
此后,将在移动设备的内部存储中创建一个数据库文件,名称为:<> test.db
卸载应用程序/清除应用程序数据后,将删除数据库中的表。 卸载应用程序后,有人可以帮助我保留数据。
答案 0 :(得分:1)
如果您希望它在卸载后仍然存在,则应将您的数据库文件保存在Environment.getExternalStoragePublicDirectory()
给出的位置。 请注意,您放入该目录的所有文件都具有世界可读性。
使用外部目录(例如其可用性)时还需要考虑其他事项。更多信息:https://developer.android.com/training/basics/data-storage/files.html
答案 1 :(得分:0)
您可以使用NoSQL数据库并将应用程序数据存储在文件中,而不是SQLite。通过卸载应用程序,应用程序数据将保持不变,因为您可以自由地将数据存储在设备的外部存储中
我建议请仔细阅读
如果你不能使用SQLite,它是一个非常好的Android NoSQL DB库。