在Android中,JobScheduler可以安排在满足条件时执行部分代码(服务)。例如,如果想要同步数据,他可以在有可用的网络连接并且电话正在充电时安排任务。即使在手机重启后从未打开过应用程序,也会调用该服务。
有没有办法在iOS中如何做到这一点?例如,即使重启后应用程序没有打开,dropbox,onedrive等如何将图片上传到云端呢?
答案 0 :(得分:1)
我不确定您的要求是否可行:虽然应用程序在手机重启后尚未启动,但仍会启动调度程序事件。
无论如何,这个库可以作为后台同步任务的解决方案:https://github.com/linkedin/Selene这里有一个完整的指南:https://engineering.linkedin.com/ios/introducing-selene-open-source-library-scheduling-tasks-ios
答案 1 :(得分:0)
看看SwiftQueue
是否符合您的需求。
https://github.com/lucas34/SwiftQueue
SwiftQueue
是受流行android启发的iOS作业调度程序 像android-priority-jobqueue或android-job之类的库。它可以让你 具有运行和重试约束的任务。
功能
- 顺序执行
- 并发运行
- 持久性
- 按ID或标记取消所有
- 延迟
- 最后期限
- 互联网限制
- 队列中的单个实例
- 重试:最大计数,指数补偿
- 定期:最大运行次数,间隔延迟
- 开始/停止队列
它们还有一个Battery charging constraint,但上面的功能未列出。