我正在尝试在此视频上实现Virgil Dobjanschi提供的第二个REST客户端模型:
http://developer.android.com/videos/index.html#v=xHXn3Kg2IQE
这是我正在谈论的模型的高级图:
我按照建议实现了所有内容,但我有一个包含大量表的复杂SQLite数据库模型,我需要使用事务来使用从服务器检索的全新数据更新本地数据(图中的步骤7)。
您是否有任何建议可以帮助我为此案例实施事务性ContentProvider?
有些人可能会建议我使用原始SQLite,但这样我就不会利用ContentProvider提供的ContentObservers,managedQueries和数据库访问同步的优势。
任何帮助都将不胜感激。
答案 0 :(得分:2)
由于您无权访问Level 11 API,因此您可以执行此操作。假设您想在更新方法中执行此事务:
final Cursor update(Uri uri, ContentValues values, String where, String[] selectionArgs)
{
if(uri == uri1){
//do stuff you normally do
}
//other uri stuff
...
else if(uri == special_uri){
//do your transaction stuff here
}
}
在这种情况下,special_uri
是您用来表示您需要执行特殊交易的uri。换句话说,我们在这里使用URI表示必须完成一个事务。
答案 1 :(得分:0)
您可以在ContentProvider中实现执行必要事务的自定义功能。然后,您可以使用处理器中的call()功能调用这些功能。