问题标签 [sqliteopenhelper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
601 浏览

android - Android 架构:使用多个 ContentProvider 和 onUpgrade 事件

我的应用程序有两个数据库表:ProductsShoppingCard. 所以我创建了一个ProductContentProviderand ShoppingCardContentProvider。每个都ContentProvider在其方法中调用onCreate()一个私有类,该类是SQLiteOpenHelper.

  1. 从我的角度来看,我会DATABASE_VERSION在一个单独的 ConfigBean中创建一个全局静态变量,该变量负责两个内容提供者。因此,如果我更新所有表都已更新。
    => 那行不通。只是永远不会触发 onUpdate 事件。

  2. 如果您在每个内容提供者中指定 a DATABASE_VERSION,但在每个内容提供者中使用不同的版本号
    => 那不起作用。从我的角度来看,这也没有任何意义,因为 in 的参数SQLiteOpenHelper被称为DATABASE_VERSION not TABLE_VERSION。因此,换句话说,如果不对所有onUpgrade侦听器更新/抛出事件,您将无法更新任何表。

  3. 如果您在每个内容提供者中指定 a DATABASE_VERSION,但在每个内容提供者中使用相同的版本号。
    => 那行得通。

问题:

为什么你不能在DATABASE_VERSION外部创建一个公共静态变量来处理全局升级,或者我的架构完全走错了路?

0 投票
1 回答
4056 浏览

android - SQLiteDatabase.openDatabase 与 SQLiteOpenHelper.getReadableDatabase

这两种方法有什么区别吗?两者都返回一个打开的 SQLiteDatabase。如果一个数据库不存在,两者都可以创建一个数据库。当需要读/写时,SQLiteOpenHelper 也有 getWriteableDatabase ......

我应该使用哪种方法以及在哪里使用?根据我看到的示例代码,我首先使用 SQLiteOpenHelper 创建我的数据库,然后在需要使用数据库时调用 SQLiteDatabase.openDatabase。

0 投票
2 回答
4100 浏览

android - 在 SQLiteOpenHelper 中的 onCreate 中获取上下文

在我的 android 应用程序中:如何在 SQLiteOpenHelper 的 onCreate 方法中访问 Context?

0 投票
0 回答
139 浏览

android - 将值传递给 DabaseHelper

如何将值从OnItemSelectedListener类(附加到微调器)传递到DatabaseHelper( SQLiteOpenHelper) 类?

我正在尝试使用设置器,DatabaseHelper但由于某种原因它不起作用。:|

MyOnItemSelectedListener:

数据库助手:

提前致谢。:)

0 投票
3 回答
10865 浏览

android - Android SQLite SQLiteOpenHelper IllegalStateException - DB 已关闭错误

这几天让我发疯了。我有一个非常复杂的 android 应用程序。它使用多个线程从服务器中提取数据并填充 SQLite 数据库。我正在使用单例来引用我的 SQLiteOpenHelper 扩展。我在每个活动中打开和关闭数据库。

该错误仅发生在我进行 4 次活动深度然后尝试退出的情况下。我尝试了各种打开和关闭数据库的方法,包括将关闭从 onDestroy() 移动到 onPause() 方法,以及向 onResume() 添加另一个打开。

另外值得注意的是,我的活动大量使用了 ListViews 和 ExpandableListViews,据我了解,这可能会导致数据库根据这篇文章关闭: http: //darutk-oboegaki.blogspot.com/2011/03/sqlitedatabase-is-closed-自动.html

我已经检查了代码并确保我要么关闭所有游标,要么,如果它们被分配给适配器,则调用 startManagingCursor()。

有人知道发生了什么吗?

更新: 我已经解决了这个问题,但不确定为什么要解决它。所以,也许有人知道或可以解释。

当我在活动堆栈的第 4 个活动中时,我试图通过 db.close() 关闭数据库。无论我把它放在哪里,在我得到我需要的数据之后的 onCreate 中,或者在 onStop 或 onDestroy 中,它都会产生这个错误。如果我不关闭数据库,我就没有问题。因此,某些原因导致数据库自动关闭。奇怪的是,虽然我在最后的活动中使用了可扩展列表视图,但我没有使用 cursorAdapter。有人有什么想法吗?很想了解这一点。

0 投票
1 回答
236 浏览

android - Android SQLiteOpenHelper 生成的打印语句

我有一个不能正常工作的更新语句,想知道最终语句的样子。有没有办法打印出 Android SQLiteOpenHelper 生成的语句?

到目前为止,我设法通过单步执行堆栈跟踪来掌握未填充的语句:

未填充语句的语法是正确的。

0 投票
1 回答
2547 浏览

android - SqliteOpenHelper 调用 OnCreate() 方法时

嗨,我想知道当我创建 MyDatabase Manager 类的对象时,何时调用 SqliteOPenHelper 的 Oncreate() 方法

问题是,当我运行应用程序时,它创建数据库但未创建表,并且它抛出异常表不退出。

}

在这里,我调用了我的 AdatabaseManager

0 投票
1 回答
149 浏览

android - SQLiteOpenHelper-Android 混淆

我有几个关于 sqlite-android 的问题

  1. 什么时候在应用程序中调用该onUpgrade方法?

  2. 我可以在一个应用程序中有两个助手类吗?如果是这样...

  3. 那么我如何/何时打电话给二等舱

0 投票
1 回答
671 浏览

android - 从市场升级时如何重置应用程序状态

作为开发人员,我已经在市场上发布了应用程序。当用户下载新版本时,我希望应用程序清理其状态( SharedPreferences 、 SQLite 模式 ... )。我读到了SQLiteOpenHelper。我想当我从 Eclipse 设备上加载新的 .apk 时,该应用程序仍保留其以前的 SharedPreferences 。如果数据库架构发生更改,应用程序将崩溃。

当应用程序从市场升级时,是否可以触发“干净状态”?

0 投票
1 回答
6904 浏览

android - SQLiteOpenHelper 没有调用 onCreate

这是我第一次使用 SQLiteOpenHelper(或 android 上的数据库)。当我得到一个可写的数据库时,我想知道为什么在类的每个新实例上都没有调用 onCreate。难道我做错了什么?

}