为android / ios构建同步服务?

时间:2015-03-19 15:07:33

标签: android c++ ios service sync

目前我正在为android / ios构建应用程序。 这个应用程序是用C ++ / QML编写的,并通过PHP与MySQL数据库服务器连接。

我真正想要构建的一项功能是在应用程序未主动运行时,能够将移动设备与数据库同步(主要用于其他用户的更新)。 我认为这样做的最佳方法是编写一个独立于应用程序运行的服务。当您启动移动设备并在服务器传入的推送消息触发时开始同步数据时,将激活此服务。

我的问题是,如果这是最好的方法,如果甚至可以根据他们的政策为android / ios编写这样的服务(具有从启动运行的必要权限)?

我已经阅读了很多关于这个主题的内容,但是有很多矛盾的答案。这就是为什么我现在有点迷失的原因。

希望你们能就这件事给我一些建议/指示! (不需要喂食勺子......)

先谢谢!

2 个答案:

答案 0 :(得分:2)

你肯定不能在iOS上这样做。有一个'背景提取'模式将允许您的应用定期获取更新,但应用程序必须正在运行,即由用户主动启动才能执行此操作。

为什么你需要它作为一个守护进程?该应用程序在成为前台时是否可以更新?

答案 1 :(得分:2)

答案是矛盾的,因为iOS和Android上的工作方式不同(不幸的是)。

在Android上,您可以编写服务,让它独立于应用程序运行,甚至可以在启动时启动它。

在iOS 上,您无法编写独立于您的应用运行的服务(除非您越狱)。 Apple会为您的应用程序提供特定任务的后台CPU时间,例如VOIP,GPS提取甚至背景提取,但您对自己的服务没有多少控制权。

我必须为Android和iOS构建一个依赖于后台服务的应用程序,这些不同的范例是一个主要障碍。

修改

以下是iOS 8.2支持的后台模式的屏幕截图(截至此答案的当前版本):

enter image description here

编辑2

如果问题仅涉及预览推送通知,则在iOS上可以开箱即用。 Here是Apple推送通知的绝佳介绍,展示了如何设置通知以及更高级的主题。