从设备卸载应用程序不会删除数据库

时间:2015-12-01 07:28:43

标签: android

我在设备上遇到app卸载问题。相关数据库似乎没有被删除,因此我无法更新我的表并添加新列。 可能是什么问题。

Android版本为6.0。

3 个答案:

答案 0 :(得分:1)

如果您希望任何更新反映在您现有的数据库中,则无需手动删除或删除它。 sqlite为此提供了 onUpgrade()。你可以找到很多很好的stackoverflow解决方案,只需google就可以使用 onUpgrade()

你可以这样使用它,

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    switch(oldVersion){
        case 1:
            db.execSQL("ALTER TABLE " + DATABASE_TABLE + " ADD COLUMN " + NEW_COLUMN_NAME + TYPE);
    }
}  

答案 1 :(得分:1)

卸载只删除.db中的文件。

如果您要自己添加Content Provider对象,(所以不要实现onUpgrade())并将db对象放在另一个目录中,它将不会被删除。

您也可以使用 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var testSchema = new Schema({ "Name":String, "TestValue":String }, { collection: 'test' }); testSchema.eachPath(function(path) { console.log(path); }); testSchema.path('TestValue').set(function(value) { console.log("value: " + value); value="FFF"; this.TestValue = value; return value; }); module.exports = mongoose.model('test', testSchema); 方法。

答案 2 :(得分:1)

在Android6中卸载应用程序时删除数据库... 在AndroidManifest中添加以下标记:

<application 
    android:allowBackup="false" 
    tools:replace="android:allowBackup">