卸载应用程序后如何在数据库中保留数据?

时间:2016-09-29 10:09:37

标签: javascript android html5 sqlite cordova

我想在我的应用程序中实现脱机数据存储功能。即使用户从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

卸载应用程序/清除应用程序数据后,将删除数据库中的表。 卸载应用程序后,有人可以帮助我保留数据。

2 个答案:

答案 0 :(得分:1)

如果您希望它在卸载后仍然存在,则应将您的数据库文件保存在Environment.getExternalStoragePublicDirectory()给出的位置。 请注意,您放入该目录的所有文件都具有世界可读性。

使用外部目录(例如其可用性)时还需要考虑其他事项。更多信息:https://developer.android.com/training/basics/data-storage/files.html

答案 1 :(得分:0)

您可以使用NoSQL数据库并将应用程序数据存储在文件中,而不是SQLite。通过卸载应用程序,应用程序数据将保持不变,因为您可以自由地将数据存储在设备的外部存储中

我建议请仔细阅读

http://developer.couchbase.com/documentation/mobile/1.1.0/develop/training/build-first-android-app/index.html

如果你不能使用SQLite,它是一个非常好的Android NoSQL DB库。