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

SQLiteCursorLoader中的insert(..),update(..)等方法具有空返回类型。如果它们返回很长的时间,这将使我的生活更加轻松,并且我的代码会更整洁,因为它们是已修改的表中行的自动递增的行ID。

我可能可以破解SQLiteCursorLoader来做到这一点,但我想知道是否有设计原因,目前还没有?万一我陷入困境并碰到了一个大陷阱。

最佳答案

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


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

欢迎您做自己的AsyncTask来执行这些操作并处理这些值,并假定基础SQLite API支持它(我认为您无法从更新中获得所需的值,因为有多行可能会受到影响)。您必须自己在onContentChanged()上调用SQLiteCursorLoader,以触发逻辑来重新查询数据库并为您提供新的Cursor

10-04 19:58