我将通过解决一个更大的问题来回答您所有的问题:如何在网络服务器和android应用之间同步数据?
在网络服务器和android应用之间同步数据需要在android设备上使用几个不同的组件。
永久存储:
这是电话实际存储从网络服务器接收的数据的方式。实现此目的的一种可能方法是编写由Sqlite数据库支持的自定义ContentProvider。可以在以下位置找到有关内容提供商的不错的教程:http : //thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/
一个ContentProvider的定义一致的接口与存储的数据进行交互。如果需要,它还可以允许其他应用程序与您的数据进行交互。ContentProvider的后面可能是Sqlite数据库,缓存或任何任意存储机制。
虽然我当然建议将ContentProvider与Sqlite数据库一起使用,但是您可以使用所需的任何基于Java的存储机制。
数据交换格式:
这是您用来在网络服务器和android应用之间发送数据的格式。如今,两种最受欢迎的格式是XML和JSON。选择格式时,应考虑可用的序列化库类型。我马上就知道,有一个很棒的json序列化库叫gson:https : //github.com/google/gson,尽管我确定XML存在类似的库。
同步服务
您将需要某种异步任务,该任务可以从服务器中获取新数据并刷新移动内容以反映服务器的内容。您还希望在对内容进行本地更改并反映这些更改时通知服务器。Android提供SyncAdapter模式作为轻松解决此模式的一种方法。您需要注册用户帐户,然后Android会为您执行很多操作,并允许您自动同步。这是一个很好的教程:http : //www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/
至于如何确定记录是否相同,通常您将创建具有唯一ID的项目,并将其存储在android设备和服务器上。您可以使用它来确保引用相同的参考。此外,您可以存储“ updated_at”之类的列属性,以确保始终获取最新数据,或者不会意外覆盖新写入的数据。