- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在 Xcode 7.0.1 中,“模拟背景”获取命令导致 performFetchWithCompletionHandler
被触发两次。
这是 Xcode 调试错误吗,或者这可能发生在运行应用程序发布版本的设备上。
更新现在我们有了 Xcode 7.1.1 并且仍然调用了两次 performFetchWithCompletionHandler
。由于我不确定这是否也“在野外”发生,所以如果我的 fetch 操作已经在运行,我会保持状态。
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(nonnull void (^)(UIBackgroundFetchResult))completionHandler {
if (self.performingFetch) {
return completionHandler(UIBackgroundFetchResultNoData);
}
self.performingFetch = YES;
...
self.performingFetch = NO;
}
最佳答案
我通过在 App Delegate 中声明一个静态 bool 值来解决这个问题,然后使用该 bool 值让后台获取执行一次
if (!runOnce)
{
[submission startSubmissionProcessWithCompletetionHandler:^(UIBackgroundFetchResult result){
NSDate *fetchStart = [NSDate date];
completionHandler(result);
NSDate *fetchEnd = [NSDate date];
NSTimeInterval timeElapsed = [fetchEnd timeIntervalSinceDate:fetchStart];
NSLog(@"Background Fetch Duration: %f seconds", timeElapsed);
}];
runOnce = YES;
}
else
{
completionHandler(UIBackgroundFetchResultNoData);
runOnce = NO;
}
关于ios - 使用 Xcode 进行模拟时,PerformFetchWithCompletionHandler 调用了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33105744/
引用 iOS 7 的后台获取功能。 我想知道以下内容如何影响 performFetchWithCompletionHandler叫做: 用户行为 应用程序使用 应用使用频率 (iOS 如何确定您经常使
如果设备未连接到互联网,UIApplicationDelegate 是否会调用 performFetchWithCompletionHandler?在这种情况下,文档并不清楚。 最佳答案 经过一些测试
这是我的应用委托(delegate) (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NS
1)我的plist配置提供backgroundmode: UIBackgroundModes fetch 2) 在 didFinishLaunchingWithOptions 我有: [[
我有一个 iPad 应用程序,它使用完整数据保护来加密应用程序的内容,除非设备已解锁并运行。这是客户要求的,并且按预期工作。 第二个业务需求是我们在后台运行一些 Web 服务调用。这是使用新的 app
即使应用程序在后台,我的应用程序也希望每 5 秒更新一次有关用户位置的服务器。我为它实现了后台获取。 func application(application: UIApplication, didF
我正在尝试在 中添加日历事件 -(void)application:(UIApplication *)application performFetchWithCompletionHandler:(vo
要找到一个明确的答案是非常困难的;在 Apple 文档中找不到它,并且在搜索过去的问题后找不到明确的是/否。 问题很简单 - 如果应用程序请求在 N 次后执行后台提取,则用户终止该应用程序。操作系统是
在 performFetchWithCompletionHandler 中,所有的 http 请求是否必须在主 ui 线程或后台线程中完成? 最佳答案 您应该在后台线程中执行 HTTP 请求。如果您收
我想在某个时间间隔内执行一些操作。但是当应用程序处于后台或非事件状态时,这不应该发生。我已经按如下方式实现了这一点 func application(_ application: UIApplicat
我知道 performFetchWithCompletionHandler 旨在用于通过网络在后台获取数据,但我可以用它来获取不需要网络连接的数据吗?例如,我想使用 M7 运动协处理器从 CoreMo
我有点困惑 performFetchWithcompletionHandler参与 iOS 应用程序生命周期。在文档中提到它给了我们 30 秒的时间来下载任何数据,但我们的应用程序会在那时卡住 30
我有一个应用可以成功获取并显示我想添加后台获取的 RSS 源。我收到:线程 1 EXC_BAD_ACCESS(代码=1,地址=0x10),如下所示。 在应用委托(delegate)中: - (BOOL
在 Xcode 7.0.1 中,“模拟背景”获取命令导致 performFetchWithCompletionHandler 被触发两次。 这是 Xcode 调试错误吗,或者这可能发生在运行应用程序发
我为后台获取实现了 performFetchWithCompletionHandler。我有本地通知设置,可以在数据发生变化时触发。出于测试目的,即使数据没有变化,我也会触发通知,这样我就知道一切正常
如何在 Swift 中为后台提取调用完成处理程序。我执行以下操作: func application(application: UIApplication, performFetchWithC
我有一个应用程序可以借助 Background Fetch 在后台获取内容。 因此,如果发生后台提取,我的 application:performFetchWithCompletionHandler:
我实现了 performFetchWithCompletionHandler(即:background fetch)从服务器下载一些数据。 为此,在 performFetchWithCompletio
我在下面的模拟器中调用这个函数来模拟后台获取。 然后我在日志中收到这个警告: Swift Warning: Application delegate received call to -applica
我是一名优秀的程序员,十分优秀!