1

我正在重构一个 Android 正在进行的应用程序以使用 Loader 框架,并且由于数据都存储在 SQLite 数据库中,因此我使用的是 commonsware loaderex 包和 SQLiteCursorLoader 而不是 ContentProvider 层。

SQLiteCursorLoader 中的 insert(..)、update(..) 等方法具有 void 返回类型。如果它们返回一个 long (即已修改的表中行的自动递增行 id),这将使我的生活更轻松,我的代码更整洁。

我可能可以破解 SQLiteCursorLoader 来做到这一点,但我想知道是否有设计原因让它目前没有?以防我陷入困境并遇到大问题。

4

1 回答 1

3

我想知道是否有设计原因使其目前没有?

当然。这些方法在 中执行实际工作AsyncTask,因此无法返回您寻求的值。

欢迎您自己AsyncTask执行这些操作并处理这些值,假设底层 SQLite API 支持它(我认为您无法从更新中获得所需的值,因为可能有多个行做作的)。您必须自己调用onContentChanged()SQLiteCursorLoader以触发重新查询数据库的逻辑并为您提供新鲜的Cursor.

于 2013-05-14T13:11:08.807 回答