为 android / ios 构建同步服务?

Build a sync service for android / ios?

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

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

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

我已经阅读了很多关于这个主题的文章,但是有很多相互矛盾的答案。这就是为什么我现在有点迷路了。

希望大家在这件事上给我提意见advice/directions! (不需要用勺子喂食...)

在此先致谢!

你当然不能在 iOS 上这样做。有一种 'background fetch' 模式允许您的应用定期获取更新,但应用必须 运行,即由用户主动启动,才能执行此操作。

为什么需要它作为守护进程?应用程序不能在进入前台时更新吗?

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

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

但是,在 iOS 上,您不能编写 运行 独立于您的应用程序的服务(除非您越狱)。 Apple 会给你的应用程序后台 CPU 时间来执行特定任务,例如 VOIP、GPS 获取,甚至后台获取,但你对自己的服务没有足够的控制权。

我不得不为 Android 和 iOS 构建一个应用程序,它依赖于后台服务之类的东西,而这些不同的范例是一个主要障碍。

编辑

这是iOS 8.2(本回答的当前版本)支持的后台模式的屏幕截图:

编辑 2

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