如何将Android数据库与web服务器数据库同步?
我是Android开发新手,我正在创建一个应用程序用于实践,我的应用程序只从Web服务器检索数据并将其复制到SQLite数据库中,但我如何知道我的本地数据库中是否有新数据,或者该数据是否已更新?有没有办法告诉Android“更新这些记录并插入新的记录,如果没有其他记录,请什么都不做”如何将Android数据库与web服务器数据库同步?,android,sqlite,android-jobscheduler,firebase-job-dispatcher,Android,Sqlite,Android Jobscheduler,Firebase Job Dispatcher,我是Android开发新手,我正在创建一个应用程序用于实践,我的应用程序只从Web服务器检索数据并将其复制到SQLite数据库中,但我如何知道我的本地数据库中是否有新数据,或者该数据是否已更新?有没有办法告诉Android“更新这些记录并插入新的记录,如果没有其他记录,请什么都不做” 创建syncadapter是必须的还是我可以用JobScheduler或FirebaseJobDispatcher?syncadapter仅用于这些操作,它的机制最适合您的场景 对于您的查询: 创建syncadap
创建syncadapter是必须的还是我可以用
JobScheduler
或FirebaseJobDispatcher
?syncadapter仅用于这些操作,它的机制最适合您的场景
对于您的查询:
创建syncadapter是必须的还是我可以用jobScheduler或Firebase JobDispatcher来完成
您可以参考此有两个阶段:
sqlite
数据库。Push
或Poll
现在,使用哪一个取决于情况
轮询-假设用户正在查看项目列表。用户拉刷新,然后您可以选择呼叫服务器以检查是否有任何新数据。或者您可以选择连续不断地轮询新数据,这可能不是一个好主意,因为它可能会消耗不必要的资源
推送-当服务器有新数据时,它可以发送包含适当数据的。您可以在应用程序中处理推送通知,并使用新数据更新数据库。例如,如果本地数据库中只有一个表,则每行都有唯一的Id。您可以在FCM消息中包含id
和其他相关信息,并更新本地数据库中的相应行
体面阅读:您可以切换到内置同步功能的Realm Sync或Couchbase Mobile(如果您不想实际使用Firebase)。但是,SQLite也不是。如果我在webserver数据库中更新一条记录,我如何能够检测到该特定记录已更改,并且需要在本地数据库中更新?对于第一个阶段,非常简单,只需发送一个推送通知,以通知客户端已更改记录的id。对于第二阶段,可以向所有记录添加标志。如果为false,则没有更改。如果这是真的,就会有变化。当客户端请求更新时,此标志将重置为false。