GCM服务器不负责更新你的数据库,你可以用它来亲密你的应用程序,哟!我的服务器上有一些新的更新,让我们连接并下载新的数据。它可以节省大量的设备电池,而这些电池设备会在为了检查更新的可用性而在内部定义的时间内共享服务器时浪费。
您可以指定一个JSON的消息,你是从GCM发送到您的应用程式,例如
键值:)GCMReceiver的
和的onMessage(你可以{ “状态”,“newupdate” }从意图通过关键的“地位”得到的消息,写逻辑像
if(message.equalsIgnoreCase("newupdate"){
//Call a service and download the data and store/update in your databse
}
转到本教程,如果你是新的SQLite数据库 http://www.vogella.com/articles/AndroidSQLite/article.html
更新数据库考虑到你已经实现了他OpenHelper类
MyOpenHelper myOpenHelper= new MyOpenHelper(this)
sqltitedatabaseObject=myOpenHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(<your_column_name>,<value>);
// For Updating the Existing Entry
long rowAffected=sqltitedatabaseObject.updateWithOnConflict(<Table_Name>,
values,<Selection_For_Update>,<Selection_Paramans_In_String_Array>,
0);
// For Inserting a New Row
long rowsInserted=sqltitedatabaseObject.insert(<Table_Name>, null, values);
根据您的编辑让我补充几点:
同步意味着保持两个数据相同,而要达到这个您必须创建一个Web服务,它将从数据库中获取数据(为数据库中插入的每个数据添加一个时间戳,并将其与发送到设备的数据一起发送)。
虽然同步数据从设备sqlite数据库中获取时间戳的最大值,并在从设备点击Web服务时作为参数发送,并且在该特定时间之后添加或更新的服务器响应中发送数据在请求中收到的邮票。
所以,即使用户删除了你的应用程序,你也不会在请求时间中得到任何东西,而是发送整个数据。
你的意思是我应该创建一个提供json数据的RESTful服务?如果是这样,假设有两个新记录可用,我将它添加到我的服务器数据库中,但该服务应该如何返回这两条记录? (在表中定义一列来标识“这是新的”)? – user2761885
在宁静的服务中,您可以决定使用哪种格式,它可以是xml,json或简单的字符串,以方便您使用。是GCM推送消息中的JSON,以便在需要来自GCM的多个通知时识别该消息。直到4KB的数据可以通过GCM消息本身在有效载荷中传递,但是如果您有更大的数据,请创建一个Restful Webservice并告诉您应用程序使用该数据下载数据。 – pyus13
检查我的编辑是否回答您所编辑的问题。 – pyus13