【问题标题】:Uninstalling an app from the device is not removing database从设备卸载应用程序不会删除数据库
【发布时间】:2015-12-01 07:28:42
【问题描述】:

我在从设备上卸载应用时遇到了一些问题。相关数据库似乎没有被删除,所以我无法更新我的表并添加新列。 可能是什么问题。

Android 版本为 6.0。

【问题讨论】:

  • 您可以通过以下链接更新整个数据库:stackoverflow.com/questions/8133597/…
  • 还有一个问题。测试完成后我可以返回到版本 1 吗?
  • 我认为你不能,但我没有经过测试。您可以不断增加版本。

标签: android


【解决方案1】:

在 android6 中卸载应用程序时删除数据库... 在 AndroidManifest 中添加如下标签:

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

【讨论】:

    【解决方案2】:

    如果您希望任何更新反映在您现有的数据库中,则无需手动删除或删除它。 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);
        }
    }  
    

    【讨论】:

      【解决方案3】:

      卸载只会删除data/data/YOUR_PACKAGE 中的文件。

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

      你也可以使用onUpgrade()方法。

      【讨论】:

      • 不,我不会把它放到任何目录中
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 2023-03-15
      • 2014-07-31
      • 2021-07-09
      • 2019-12-02
      相关资源
      最近更新 更多