我正在重构Android正在进行的应用程序以使用Loader框架,并且因为数据全部存储在SQLite数据库中,所以我使用的是commonsware loaderex包和SQLiteCursorLoader而不是ContentProvider层。
SQLiteCursorLoader中的insert(..),update(..)等方法具有void返回类型。它会让我的生活变得更轻松,如果他们返回了一个很长的代码,我的代码就更整洁了,这是已修改的表中行的自动增加的行id。
我可能会破解SQLiteCursorLoader这样做,但我想知道是否有一个设计原因,它目前没有?如果我陷入困境并且遇到了大问题。
答案 0 :(得分:3)
我想知道目前是否存在设计原因?
不确定。这些方法在AsyncTask
中进行实际工作,因此无法返回您所寻求的值。
我们欢迎你自己做AsyncTask
来执行这些操作并处理这些值,假设底层的SQLite API支持它(我认为你不能从更新中获得你想要的值,因为有多行可能会受到影响)。您必须自己在onContentChanged()
上致电SQLiteCursorLoader
,以触发重新查询数据库的逻辑并为您提供新的Cursor
。