与Google IO REST模式的ContentProvider进行SQLite交易?

时间:2011-10-19 21:17:44

标签: android rest transactions android-contentprovider googleio

我正在尝试在此视频上实现Virgil Dobjanschi提供的第二个REST客户端模型:

http://developer.android.com/videos/index.html#v=xHXn3Kg2IQE

这是我正在谈论的模型的高级图:

enter image description here

我按照建议实现了所有内容,但我有一个包含大量表的复杂SQLite数据库模型,我需要使用事务来使用从服务器检索的全新数据更新本地数据(图中的步骤7)。

您是否有任何建议可以帮助我为此案例实施事务性ContentProvider?

有些人可能会建议我使用原始SQLite,但这样我就不会利用ContentProvider提供的ContentObservers,managedQueries和数据库访问同步的优势。

任何帮助都将不胜感激。

2 个答案:

答案 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()功能调用这些功能。