gpt4 book ai didi

android - 销毁数据库-android生命周期

转载 作者:行者123 更新时间:2023-11-30 03:48:13 26 4
gpt4 key购买 nike

你好,我正在尝试找出一种方法,在每次应用程序启动时通过从后台返回或在关闭后重新打开来销毁我的数据库。问题是,当我第一次尝试运行我的应用程序时,我得到一个 null 并且我的应用程序崩溃了。

我的申请:用户出现登录屏幕提示,我创建了数据库,移至另一个 Activity 以执行查询。从此 Activity 中,用户无法返回登录,只能转到手机主屏幕。当我转到主屏幕并重新打开应用程序时,我想清除数据库并像用户第一次使用该应用程序一样启动。我知道这对于应用程序来说实际上并不实用,但这只是为了学习。

我尝试在 onResume 中执行 db.close()context.deleteDatabase(db.getPath()); >onRestart,但这总是会破坏我的应用程序。我还尝试检查 'db.getPath()!=null' ,但这也没有帮助。

谢谢

最佳答案

既然您知道这不是使用数据库的最实用方法,我想我不会为此打扰您。

你想要做的不是在 on Resume() 或 Restart() 期间调用删除数据库内容的方法,你实际上想通过 on Stop() 调用它。

你要使用的方法是

db.delete(String table, string whereClause, String [] whereArgs);

传递要删除的表的名称,即“user_food_database”,一个 whereclause 在您的情况下为 null,因为您要删除所有行,对于 whereArgs 为 null。

这是官方文档:

"删除数据库中行的便捷方法。

参数table 要从中删除的表whereClause 删除时应用的可选 WHERE 子句。传递 null 将删除所有行。

返回如果传入 whereClause,则受影响的行数,否则为 0。要删除所有行并获得计数,请将“1”作为 whereClause。 "

你也可以调用:

deleteDatabase(File pathToDatabase)

如果你的数据库中有多个表,但每次都重新创建数据库本身很昂贵,只删除内容可能会更好。

关于android - 销毁数据库-android生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14591586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com