我有一个android / winphone应用程序。应用程序的一小部分(后台广播接收器/任务)不时(约10-15分钟)检查带有时间戳的本地文件,如果时间戳和当前时间之间的差异变得超过 - 例如 - 30分钟,它会显示通知用户。
在Android中,我使用AlarmManager.setRepeating(...)来设置定期检查,并运行此设置代码我在行动中注册一个BroadcastReceiver" android.intent.action.BOOT_COMPLETED"在清单中。或者在每次启动时调用AlarmManager.cancel(...)和AlarmManager.setRepeating(...)。这样我可以确保我的计时器工作。
在Windows Universal中,我使用触发器和后台任务。这有一些局限性。
现在我将我的应用程序移植到iOS,快速查看并没有给我一种方法来注册一个函数或类,以便在应用程序中每10分钟执行一次快速检查(大多数不到一秒钟)本身没有启动,我也想在设备启动事件上注册一个功能。可能吗? 或者我应该让我的应用程序在后台运行?我不愿意这样做,因为我的支票很轻且很少见。
答案 0 :(得分:1)
您可以使用后台抓取来快速执行。 但有几个缺点:
不能在睡眠模式下工作。
您无法捕获设备启动事件。
它会在30秒内掉落。
我认为在一般情况下,这不是AlarmManager
的模拟。算了吧。
https://www.raywenderlich.com/92428/background-modes-ios-swift-tutorial
推送通知可用作触发器。但是,尽管如此,这是一个服务器端实现。
在上面的指南中:
选中应用功能背景模式中的背景提取框。
使用setMinimumBackgroundFetchInterval(_:)
设置适合您应用的时间间隔。
在您的app委托中实施application(_:performFetchWithCompletionHandler:)
以处理后台抓取。
您的回调事件为performFetchWithCompletionHandler