问题标签 [uibackgroundtask]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
606 浏览

ios - iOS后台执行指南示例的Apple编程指南?

所以在这个页面上有一个关于后台执行的例子:https ://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc/uid/TP40007072- CH4-SW1,示例如下:

据说bgTask在类中定义为变量。因此bgTask,类(对象)的每个实例都有一个属性。如果applicationDidEnterBackground在异步块完成之前被多次调用,这不是竞争条件的危险吗?我的意思是bgTask会改变它的价值,并且endBackgroundTask会被调用新的任务价值,而不是旧的价值?

这里不是更好的解决方案吗:

打电话之前beginBackgroundTaskWithName

0 投票
1 回答
30 浏览

ios - 在后台objective-c中执行游戏中的评分任务

我正在创建一个游戏,当应用程序在后台或未运行时,用户将获得奖励积分。如果应用程序完全关闭,他们仍然应该获得积分。目前我正在使用 NSTimer 执行此操作,但是我已经阅读了计时器无法在后台执行的所有内容。这是我所拥有的以及我应该如何解决它:

0 投票
1 回答
2081 浏览

ios - XTubeManager 在后台崩溃?

我在 XTubeManager 中遇到大量崩溃(似乎是 CFNetwork 内部的)。不幸的是,控制台日志不可用,只有调用堆栈(见下文)。

问题:

  • 我可以想象我的应用程序在后台崩溃,因此没有写入控制台日志,你认为这是可能的吗?
  • 我是否必须以不同的方式处理 backgroundTask 过期,例如通过取消所有我的NSURLRequests?(见下面的代码)

背景

我经常在后台(或通过后台推送)醒来并运行如下后台任务:

这通常被称为applicationDidEnterBackground

调用栈

0 投票
1 回答
454 浏览

ios - 后台模式下的 BLE:没有调用 didUpdateValueForCharacteristic

我有一个自定义类(比方说,MyBLE),用作CoreBluetooth包装器(类似于LGBluetooth,我猜)。它处理我的 BLE 附件和 iOS 设备之间的通信:

MyBLE.h

在 中AppDelegate,我将它初始化为一个MyBLE对象,它在前台运行良好。我根据核心蓝牙编程指南在Info.plist 中设置了所需的条目,以便我可以继续获取 BLE 附件发送的数据。UIBackgroundMode

但是当我按下主页按钮时,Xcode 控制台不再打印出任何应该在 iOS 从 BLE 外围设备获取数据时打印的消息。该设备在进入后台模式之前已经连接到 iOS 设备(中央)。

我错过了什么吗?似乎应用程序在 3 分钟后不再从 BLE 设备获取数据。(是的,我确实添加了bluetooth-central

0 投票
1 回答
821 浏览

ios - iOS 在启动后台任务时崩溃

我最近重新访问了上次为 iOS 8.4 构建的应用程序,现在将其更新到 9.3。我运行它的前几次运行良好,但现在每次打开时都会崩溃,每个模拟器都会出现错误:EXC_BAD_ACCESS(code=50)

崩溃发生在带有 beginBackgroundTaskWithExpirationHandler 的 top 方法中。我以前从未遇到过此错误,并且我自己或在 SO 上都找不到任何解决方案。

0 投票
1 回答
723 浏览

ios - 位置背景模式在 iOS 上不起作用

我正在尝试在我的应用程序中启用后台定位模式。我在我的 plist 文件中启用了“位置更新”后台模式。该应用程序包含一个每 15 秒更新一次的计时器。

当应用程序导航到后台时,我正在执行以下操作

初始化位置管理器如下

当我在 10 分钟后导航回应用程序时,我的计时器在 3 分钟停止,这是应用程序暂停的时间。

当应用程序回到前台时我的代码如下:

有什么帮助吗?

0 投票
1 回答
1920 浏览

ios - 当应用程序处于后台或终止(终止)状态时在 iOS 应用程序中执行任务

我正在开发一个 iOS 应用程序,我需要每天早上 8 点在应用程序中执行一项任务。我需要在以下三个应用程序条件下执行该任务,

  1. 如果应用程序在前台运行。
  2. 如果应用程序在后台运行。
  3. 如果应用程序既不在前台运行也不在后台运行(即应用程序被终止)。

我已经处理了案例 1 和案例 2,但我不知道如何处理案例 3。请帮助。提前致谢。

0 投票
7 回答
1059 浏览

ios - UIBackgroundTaskIdentifier 运行 NSTimer 但不更新 UILabel - iOS

在我的应用程序中,我NSTimer每秒更新一次 UILabel。我之前添加UIBackgroundTaskIdentifierNSTimer让它在后台运行。

. . .

问题是当我们按下主页按钮应用程序进入后台时,计时器正在运行但uilabel没有更新。例如,_timeLbl显示“45”。现在,如果我按主页按钮,应用程序将进入后台。10 秒后。我单击应用程序图标以在前台获取应用程序,然后我看到“45”一段时间(秒的小数部分),然后显示 35,而不是直接显示 35。这意味着标签没有更新为NSTimer. 有什么办法可以解决这个问题吗?

谢谢 !

0 投票
3 回答
1874 浏览

ios - iOS 9:beginBackgroundTaskWithExpirationHandler 在超时之前被调用

我正在处理 VOIP 呼叫并添加对 iOS < 10 的支持。对于当应用程序处于后台时传入的 VOIP 呼叫,我正在使用 UILocalNotification(在 iOS 10 中已弃用)。

要在 60 秒(或 1 分钟)内拨打电话,我正在使用此代码

将后台进程时间延长到 1 分钟,它在 iOS 10.1.1 (iPhone) 中工作,但在 iOS 9.3.5 (iPad) 中不工作。不知何故,处理程序正在调用 30-33 秒?

更新:

我试图评论这段代码:

我仍然可以做 30-33 秒,即我不知道为什么这不起作用?

0 投票
0 回答
981 浏览

ios - 当应用程序进入后台语音识别不起作用

我正在使用SFSpeechRecognition语音到文本,当应用程序在前台时它可以正常工作,但是当应用程序进入后台时,需要的应用程序继续录制。

.plist我厌倦了文件中所有必需的背景设置

请建议我该怎么做?