Tag: 背景处理

“查找我的朋友”(FMF)应用程序如何响应位置?

我试图创build一个应用程序,当有人请求时,会响应组中的人员位置 – 类似于查找我的朋友(FMF),但在Android和iOS上,我正在使用Phonegap。 我一直在研究FMF应用程序如何返回位置 – 沿着这个SO Post的线路,我试图更好地理解。 在某些时候,由于内存压力,iOS会终止应用程序。 我明白,如果您将XCodefunction部分中的背景模式设置为位置,并且位置发生了重大变化,则应用程序将在后台重新启动。 FMF应用程序正在做什么来确保它保持响应位置请求? 当请求位置时,我发送一个推送通知(数据通知,所以它在后台处理 – 用户不会看到它),如果应用程序在后台/前台应用程序预计将响应。 但是,如果iOS的应用程序已被iOS终止,并且没有重大的位置更改,则应用程序将无法在后台运行并且不会响应。 除了以某种方式防止iOS挂起/终止应用程序,这是我们能做的最好的吗? 欣赏任何见解。 我已经阅读了关于创build后台服务来帮助,但似乎更适用于Android比iOS。 感谢您的指导和指点。 桑杰。

有一个NSTimer运行背景

我已经看到了数百个如何让NSTimer在后台运行的解决scheme。 我知道这是可能的,只要看看像Strava和Runkepper这样的应用程序,可以跟踪你锻炼的时间。 但是,这样做的最佳实践解决scheme是什么? 我无法find一个解决scheme。 另外,我希望NSTimer可以在不同的UIViewControllers中使用。 这是怎么做的最佳做法? 谢谢你的问候! 🙂

即使应用程序终止,也可以获得Apple的远程推送通知

我正在开发一个iOS应用程序,它在特定的时间间隔接收苹果的远程推送通知。 当应用程序处于活动状态以及应用程序处于后台时,都会成功接收通知。 但是,当应用程序从应用程序切换器/docker终止,直到应用程序再次启动才会收到通知。 我曾尝试下面的代码,以保持应用程序在后台活着。 这个相同的代码是在applicationWillTerminate:方法中实现的,但是不起作用。 __block UIBackgroundTaskIdentifier bgTask ; UIApplication *app = [UIApplication sharedApplication]; bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ [app endBackgroundTask:bgTask]; [app enabledRemoteNotificationTypes]; bgTask = UIBackgroundTaskInvalid; }]; 甚至在应用程序终止后,接收通知的最佳方式是什么?

CoreBluetooth反复断开

我一直在寻找这个问题,但似乎没有人看到。 我有两个iPad。 一个是作为一个始终处于前台的蓝牙外设。 由于我对中央更感兴趣,所以我使得我的中央iPad能够以BLE为中心。 我的工作stream程如下: 中央应用程序运行并开始扫描 周边广告服务(或范围内) 中央设备连接到外设并停止扫描 外设停止广告(或离开范围) 中央设备断开并开始扫描 无论中央处于前景还是背景,都可以无缝地执行步骤1-5 当我运行我的中央iPad应用程序时,步骤3和5每10秒重复一次,即使该服务正在广告整个时间。 这发生在前景和背景。 断开连接,我得到这个错误: Error occurred while disconnecting peripheral: The specified device has disconnected from us. 任何想法,为什么它保持断开连接? 如果没有数据传输,CoreBluetooth是否清除连接? 目前,我的中心正在对外围特征进行一次性的阅读。 它不订阅更新,因为这些值是静态的。 谢谢!!

iOS:在后台更新媒体信息

目前我正在使用MPNowPlayingInfoCenter为我的应用程序显示哪首歌正在播放,但是我正在考虑将HTTP Live Streaming合并到我的应用程序中,后者将在后台出现任意数量的不同音轨。 有没有办法在应用程序在后台时设置nowPlayingInfo(在一段时间之后调用函数?),即使应用程序在技术上实际上并不在后台运行? 还是有一种方法来设置正在播放的信息,使用我的服务器上的简单调用,将返回正确的信息 – 使用返回string或图像的API调用? 我知道这是可能的,因为松扎已经做到了,但也许他们已经获得了使用苹果某些私人方法的许可(如果那是你所能做的事)。

swift / ios在后台刷新应用程序数据

我正在写一个iOS / Swift应用程序,每隔X分钟从REST服务读取数据并相应地更新UI。 现在,我希望当应用程序放在后台时,从REST服务读取X分钟间隔的任务,并且在刚刚读取的数据满足给定条件的情况下继续调用任务,显示通知提示用户将应用程序回到前台。 在我的search中,我已经阅读了applicationDidEnterBackground事件,我应该用beginBackgroundTaskWithExpirationHandler启动一个任务。 问题是,如果我理解正确,这最多可以允许10/15分钟,如果任务不是以endBackgroundUpdateTask停止的话,应用程序将被终止,而我希望任务能够无限期地持续轮询服务(至less直到用户从应用程序的设置中禁用它) 我的问题是: 这种function如何正常执行? 解决这个问题是否存在一些共同的解决scheme或最佳实践?