当前位置: 首页 > 知识库问答 >
问题:

卸载应用程序时删除room数据库

王扬
2023-03-14

我正在制作一个应用程序,我正在使用Android Room持久性库来处理我的数据库层。房间图书馆的工作像魅力和一切都很好与它。但我希望当用户卸载应用程序时,room创建的数据库被删除。我试着卸载了app,然后重新安装,但不知怎么数据库还在,app还能从中获取旧数据

@Database(entities = {UnleashedEntity.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {

    private static AppDatabase INSTANCE;

    public abstract DaoContract MyDao();

    public static AppDatabase getAppDatabase(Context context) {
        if (INSTANCE == null) {
            INSTANCE =
                    Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, "user-database")
                            .build();
        }
        return INSTANCE;
    }

    public static void destroyInstance() {
        INSTANCE = null;
    }
}

编辑我知道我可以使用action_package_removed意图使我的应用程序知道卸载。我想知道的是,是否有databasebuilder的配置来完成这项工作,以及如何在卸载应用程序后数据库仍然存在。

共有1个答案

谢建业
2023-03-14

是否有执行该作业的databasebuilder的配置

AFAIK room不知道要卸载的应用程序,因此room可能不会在卸载时为您擦除数据库。

为什么卸载应用程序后数据库仍然存在

    null

如何禁用自动备份

在您的舱单中:

<manifest ... >
    ...
    <application android:allowBackup="false" ... >
        ...
    </application>
</manifest>
 类似资料:
  • 由于install4j没有一个维护安装程序来允许删除部分组件,我修改了卸载程序,以创建显示每个可卸载组件的可配置表单,然后简单地根据用户选择删除文件,这反过来意味着删除标准卸载屏幕。

  • 使用 Creative Cloud 桌面应用程序卸载 Creative Cloud 应用程序。 卸载 Creative Cloud 应用程序 如果您不再需要某个应用程序,则必须使用 Adobe Creative Cloud 桌面应用程序卸载该应用程序。 注意:不要将应用程序文件和文件夹拖到“废纸篓”或“回收站”中,因为这样做无法将其正确卸载。 单击位于任务栏 (Windows) 或 Apple 菜

  • 我总是假设,当我卸载一个代号为One的应用程序(Android和iOS)时,它在存储中的所有数据以及在文件系统存储的主路径中的所有数据也会被清除...在我的手机里似乎是这样,但在我一个朋友的Android手机上却并非如此(我指的是我开发的同一款应用)。 这个行为会不会是Android应用程序在卸载和重新安装后会记得其数据的问题的答案中所描述的行为呢? 谢谢你

  • 我已经实现了数据库备份和恢复到Google Drive应用程序文件夹使用Google Drive Android API。我测试了它,它运行良好,这意味着我可以在Google Drive的隐藏应用程序文件夹中创建我的db文件,并且在卸载和重新安装应用程序时,我可以使用我的应用程序的还原功能来还原数据库。 但最近,它已经停止工作了。现在,当我收回并卸载我的应用程序,并试图恢复它从谷歌驱动器的应用程序

  • 在我的应用程序中,我存储了一些SharedPreference数据。 我必须清除所有存储的数据当应用程序关闭。

  • 我已经将电子应用程序设置为在Windows上自动启动: 这将在注册表的位置中添加一个条目 我正在使用electron-builder打包我的应用程序。 这里提到我可以在卸载nsis时添加脚本。 这是我的自定义安装程序。nsh: 最后,我在package.json中提到了它: 但是,当我卸载我的应用程序时,该条目仍然留在注册表中。 如何删除此条目?