我已经为 Android 开发了一段时间,目前正在与我的服务器同步。
快速介绍:我读过有关 Sync Adapter 的资料,也知道它的作用,但我只想知道它是否是我的最佳选择。
在我的应用程序中,用户可以点击一个按钮来通知对他来说很重要的事情。单击我想更新服务器以保留数据,并通知他的亲属。我的问题如下:用户可以多次单击该按钮来打开和关闭它,所以在这种情况下,我不想每次用户单击按钮时都打开与服务器的通信,它甚至可能不会改变状态它以前的状态。
所以我的问题是:同步适配器是否适合我,或者我应该构建自己的类来与将检查它的服务器通信,以及像 Volley 那样接收紧急\非紧急消息。 如果有人能阐明 Sync Adapter 的确切工作原理,我将不胜感激(它是否按照我所说的进行操作?)
如果有什么不清楚,我很乐意澄清。 提前致谢。
最佳答案
Android 同步框架应该非常适合您使用。如果您将同步标记为需要,系统将不会立即启动它,而是延迟一小段时间。这样,如果用户切换回按钮,您将能够注意到没有任何值发生变化。旁注:如果您使用 ContentProvider
,它会在数据更改时自动通知 SyncAdapter
。如果需要,您还可以手动触发同步。
同步框架所做的只是调用一个方法 (onPerformSync
)。您可以随意实现它。如果您认为上次同步太接近,您可以跳过同步,或者查看数据是否真的发生了变化,或者它恢复到原始值(例如,您可以在数据库中保留“上次同步”值,然后您可以比较它到您的 onPerformSync
方法中的当前值。如果相同,则没有变化)。
好处:您将节省电池电量,因为同步框架尽可能按顺序运行多个同步,您的用户将能够在一个集中的地方(Android 设置)管理他们的帐户,禁用系统范围内的同步(想想索尼的耐力模式,在 Activity 时将每个 SyncAdapter 设置为暂停)。
关于android - 与服务器同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19452752/