gpt4 book ai didi

android - 重置或刷新数据库连接

转载 作者:行者123 更新时间:2023-11-30 04:51:57 25 4
gpt4 key购买 nike

This Android application on Google在用备份替换数据库文件后使用以下方法刷新数据库:

public void resetDbConnection() { 
this.cleanup();
this.db =
SQLiteDatabase.openDatabase(
"/data/data/com.totsp.bookworm/databases/bookworm.db",
null, SQLiteDatabase.OPEN_READWRITE);
}

我没有构建这个应用程序,我不确定会发生什么。我试图让这个想法在我自己的应用程序中工作,但数据似乎被 View 缓存,并且应用程序继续显示来自被替换数据库的数据,即使在我调用 cleanup() 并重新打开数据库之后也是如此。我必须终止并重新启动 Activity 才能看到新数据。

我试图在我的 TabHost View 上调用 invalidate,它几乎包含所有内容。我以为 View 会重绘并刷新它们的底层数据,但这也没有达到预期的结果。

我最终以编程方式重新启动了该 Activity ,这很有效,但这似乎是一个过激的措施。有没有更好的办法?

最佳答案

至少在概念上同意 Pentium10。

应用程序正在使用 Cursor 来显示其数据。 Android 中的 Cursor 类似于 ODBC 中的客户端游标,因为它是查询结果集所表示的所有数据的缓存副本。

现在,处理数据库内容更改的常规方法是在Cursor 上调用requery()。这会将其更改通过 CursorAdapter 波及到附加的 ListViews 或其他 AdapterViews

对于您的情况,我不完全确定这是否有效,因为您要关闭、替换并重新打开数据库。这不应该在数据上打开 Cursor 来完成,AFAIK。因此,在您的情况下,您需要关闭 Cursor,进行数据库洗牌,然后再次运行查询以在新数据库上获取新的 Cursor

关于android - 重置或刷新数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3033474/

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