如何在卸载应用程序后在数据库中持久化数据

how to persist data in database after uninstalling application?

本文关键字:持久化 数据库 数据 应用程序 卸载      更新时间:2023-09-26

我想在我的应用程序中实现离线数据存储功能。在这种情况下,即使用户从应用管理器中清除数据,甚至当用户卸载应用程序时,数据也会被存储。

我正在使用以下代码,我在其中创建一个数据库和一个表。

 
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

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

如果您希望它在卸载后仍然存在,您应该将DB文件保存在Environment.getExternalStoragePublicDirectory()指定的位置。

请注意,您放入该目录的所有文件都是世界可读的。

在使用外部目录时,还需要考虑其他一些事情,比如它的可用性。更多链接:https://developer.android.com/training/basics/data-storage/files.html

比起SQLite,你可以选择NoSQL数据库并将你的应用数据存储在文件中。通过卸载应用程序,应用程序数据将是持久的,因为你可以自由地将数据存储在设备的外部存储

我建议您查看

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

这是一个非常好的android NoSQL数据库库,如果你不能使用SQLite。