【问题标题】:Running a back ground service in iOS8+在 iOS8+ 中运行后台服务
【发布时间】:2015-07-08 22:32:18
【问题描述】:

我有一个应用程序需要在 iPhone 处于活动状态时(即显示屏打开时)连接到服务器。为此,我需要以下两件事。

在android中我们有组合

  • BroadcastReceiver 在屏幕处于活动状态时收到通知
  • Services 在后台运行app进程来完成这个任务。

但在 iOS 中我找不到任何此类服务。有什么方法可以在 iOS 8 中完成这项任务吗? iOS中是否有上述2的等价物?

【问题讨论】:

  • “当屏幕处于活动状态时”是什么意思?在您的应用中处于活动状态,还是在手机中处于解锁状态?
  • @pbush25 是的。当显示屏打开时。或者手机解锁时
  • 没有办法让您的应用程序在 iOS 中意识到这一点。您的应用程序有两种可能性,一种是它们仅在运行时获取信息,另一种是您可以指定它们执行特定的后台任务,但这并不特定于屏幕条件。在这种情况下,它将收到一条通知以获取新数据并执行其获取以在用户再次打开应用程序时做好准备。

标签: ios swift cocoa ios8 background-process


【解决方案1】:

查看downloading data in the background 上的这部分文档。您需要在 AppDelegate 中实现 application:performFetchWithCompletionHandler:,打开 Capabilities 中的“Background Modes”(通过单击 Project navigator 中的顶部项目,旁边有蓝色图标的项目),并选中“Background fetch”。

请注意,系统决定何时调用application:performFetchWithCompletionHandler:——这对我们来说是完全不透明的。只有当您的应用不是在前台运行的应用时才会调用它。

我不知道有什么方法可以在每次设备解锁时收到通知。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多