我有一个Android应用程序,维护不同地理位置的本地SQLite数据库。
现在我想将该数据库连接到“云”以完成以下操作:最初……
首先在android中创建一个本地数据库。和你保存位置详细信息。保存后发送到云/服务器DB。
接下来有时你需要同步哪个云/服务器数据库。所以在android中写一个服务就像采取特定的间隔并与clound / server DB同步。
合并所以在表格中加一个时间戳。并检查时间戳并相应更新。
你一定要用 ContentProvider 和 SyncAdapters 。你应该:
ContentProvider
SyncAdapters
SyncService
SyncAdapter
onPerformSync()
使用 SharedPreferences 存储以跟踪您的同步参数,例如lastSync时间等
SharedPreferences
final SharedPreferences syncMeta = mContext.getSharedPreferences("sync:" + account.name, 0); long lastSyncTime = syncMeta.getLong(LAST_SYNC, 0); long lastServerSyncTime = syncMeta.getLong(SERVER_LAST_SYNC, 0);
这可以很容易地告诉您它是否是第一次同步,您可以在此处进行初始处理
在此处使用ContentProvider进行数据库操作。 ContentProviders提供了一种从应用程序和同步适配器访问数据的统一方式。他们将通知系统更新,以便框架和计划同步。如果您选择这样做,它们也可以作为您的数据与其他应用程序的公共接口。
此外,通过使用SyncService,您可以节省电池电量。如果系统将所有应用程序一起批处理,而不是每个应用程序唤醒系统,系统将使用网络勾选来实现同步操作
最后,
你应该看两个样本。他们几乎涵盖了我解释的一切
这两款应用都使用Google App Engine作为云组件。它很容易上手,所以一定要探索这些选择。