后台获取似乎不会发生火灾

2024-04-08

在我的应用程序中,我执行了下面列出的操作,并向应用程序提取例程添加了计数器,以突出显示 iOS 8.1 调用提取的次数。

  1. 打开后台模式并启用后台获取。
  2. 为“performFetchWithCompletionHandler”编写代码。 NSLog 消息指示获取过程的开始和结束。计数器位于这些消息之间。
  3. 在“didFinishLaunchingWithOptions”中添加了代码。然而,我没有使用“setMinimumBackgroundFetchInterval”,而是使用 60 的双倍(假设秒数)。

当我通过设置“模拟后台获取”在调试中测试代码时,一切都按预期完美运行,绝对没有问题。计数器工作并显示预期值。

然而,当我在 iPhone 上上线时,启动应用程序,然后按主页按钮进入后台,等待一两个小时或过夜。什么也没有发生,没有获取,没有下载,所有计数器都保持为零。

如果我不能让它工作,我将需要创建自己的后台线程并直接管理它,我不想这样做。

任何意见或想法都深表感谢。


从 iOS 8 开始,我的两个应用程序都开始遇到同样的问题。在 iOS 7 中,后台刷新触发非常可靠。在 iOS 8 中,它就停止了。如果我从 xcode 启动任一应用程序进入后台获取模式,一切都会正常工作。背景刷新在 iOS 中自行停止触发。我现在正在尝试一个充满希望的理论。这是我的想法...

如果用户强制从多任务屏幕中终止您的应用程序,iOS 会将其排除在后台刷新之外。 Apple 会如何实施这种行为?一种方法是将最小获取间隔设置为 UIApplicationBackgroundFetchIntervalNever。十分简单。让我们假设他们就是这样做的。您的应用程序是否在每次启动时设置最小获取间隔,还是仅在首次启动时设置?

就我而言,我只是将最小获取间隔设置为应用程序初始设置的一部分。如果用户强制终止了应用程序,并且 iOS 实际上将最小获取间隔设置为 UIApplicationBackgroundFetchIntervalNever,那么我的应用程序将陷入从不状态。我对我的一个应用程序做了一个小小的更改,以便它在每次启动时设置最小获取间隔。到目前为止,一切都很好。

Update:

我的后台一切都很好。

我当前正在开发的应用程序和我正在开发的应用程序应用商店 https://itunes.apple.com/us/app/in-concert-concert-listings/id633875595?mt=8再次可靠地触发后台获取。

执行此操作的代码can很简单...

[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:minimumBackgroundFetchInterval];

每次应用程序启动时调用该值都可以解决问题,但是,您需要考虑设置该值是否适合应用程序的当前状态。就我而言,我的应用程序之一是音乐会列表应用程序。如果用户尚未选择音乐会地点,则设置最小后台获取间隔是没有意义的。我有一个 NSUserDefault 来跟踪是否已设置位置。这是我设置获取间隔的代码的近似值......

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    if ([INCUserDefaults isLocationConfigured]) {
        [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:kSecondsIntervalForUpcomingShowsBackgroundFetch];
    }

    return YES;
}

在我发布错误修复之前,我仅将最小后台获取间隔设置为设置过程的一部分。现在我在设置过程中设置它,and如果先前已完成设置过程,则在应用程序启动时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

后台获取似乎不会发生火灾 的相关文章

  • Objective-C 中是否有命名初始化方法的约定?

    在可以通过不同的 init 方法初始化的 Objective C 类中 将所有初始化程序共用的初始化代码收集到一个从其他 init 方法 有时也从从 Nib 唤醒 是否有关于如何命名该方法的约定 初始化器 初始化公共 根据 Apple 的说
  • 沙盒尝试恢复消耗性 IAP

    我一直在尝试在 iOS 上测试一些消耗性 IAP 但遇到了一个奇怪的错误 弹出一条警报 其中包含以下文本 此应用内购买已被购买 它将恢复为 自由的 环境 沙盒 我已经检查过 并且确定我的 IAP 可以在 iTunesConnect 中使用
  • NSCFData fastCharacterContents 崩溃? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我目前在控制台中收到此崩溃日志 20
  • DatePicker 停止 CoreData 按预期工作

    我有一个应用程序 它保存 UIDatePicker 中的文本和日期 然后在您回到 UIDatePicker 中的该日期时显示该注释 效果很好 只有我发现将 UIDatePicker 日期设置为今天会停止 CoreData 工作 只有当我运行
  • 自定义 UITableViewCell 选择样式?

    当我点击我的UITableViewCell 当我单击单元格时 背景部分 我的背景图像未覆盖的区域 会变成蓝色 另外 所有的UILabel单击时单元格上的 s 变为白色 这就是我想要的 然而 我不想要的是当我点击它时的蓝色背景 但如果我这样做
  • 如何解决 CoreData mogenerator 未找到问题

    我收到如下所示的错误 我不知道我错过了什么 我该如何解决这个问题 如下图所示 Users nischalhada Documents XcodePro mnepalnews revisited 2 0 CoreData mogenerato
  • 关于窗口层次结构的警告

    我的调试器中出现这样的警告 这是什么意思 Warning Attempt to present
  • iphone NSDate 转换问题

    在我的 facebook 图表 Api 中 我正在获取这些数据 来自杰森 updated time 2011 05 17T14 52 16 0000 我正在使用此代码将其转换为有效的日期格式 NSDateFormatter df NSDat
  • 在 swrevealcontroller 之前实现登录屏幕

    我刚刚开始学习 IOS 开发 我已经按照给定的在线教程成功实现了 SWRevealViewController 一切都按预期工作 然后 我决定添加一个登录屏幕 这将是应用程序运行时用户看到的第一个页面 我采取的步骤如下 将 UIViewCo
  • 在不同的捆绑包上测试 iPhone 应用内购买?

    我们有一组 iPhone 应用程序的 Beta 测试人员 最近 我们在应用程序中添加了应用内购买功能 在此之前 我们会使用单独的捆绑 ID 和名称向 Beta 测试人员发送临时版本 以便他们可以在手机上拥有商店版本和临时版本 然而 似乎我们
  • 如何使用MKMapView完成加载委托,可能的“完成显示”委托?

    当用户在选择注释后点击 保存 时 我尝试保存地图视图的缩略图 当用户尚未放大该注释时会出现问题 因此尚未加载关闭缩放级别 这就是用户点击保存后我正在做的事情 将布尔值 saving 设置为 true 居中并放大注释 无动画 当调用mapVi
  • 如何在 Xcode 4 中在 .h 和 .m 之间切换

    刚刚安装的 Xcode 4 到目前为止一切顺利 除了 Apple 更改了所有键盘快捷键 有人知道如何在 h 和 m 之间切换吗 苹果改变了各种快捷键 但要在标头和实现之间切换 新的快捷键是 You can change it back to
  • 为什么使用[ClassName alloc]而不是[[self class] alloc]?

    我正在读马克 达尔林普尔 Mark Dalrymple 的著作在 Mac 上学习 Objective C 仅在协议章节 所以仍然相对较新 并试图弄清楚一些事情 为什么要通过类自己的名称来引用它 如果我有一个叫做Foo 为什么我会想写 比如说
  • iOS 10 的错误? NSDate 日本地区时间描述和 24 小时休息

    这似乎是 iOS 10 的一个错误 在 iOS 8 和 9 中都可以 NSDate date description 的小时描述是错误的 它附加了 24 小时描述和 12 小时描述 我没有使用 NSDateFormatter 只是默认设置
  • 如何确定iPhone铃声的当前级别?

    我正在使用 AVSystemController 将 iPhone 铃声静音 但我不知道如何确定铃声的当前级别 有任何想法吗 PS 是的 我知道使用 AVSystemController 可能会导致应用程序被 App Store 禁止 这不
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • 如何检测Retina高清显示屏?

    UIScreen有一个新的 nativeScaleiOS 8 中的属性 但文档没有提及它 property nonatomic readonly CGFloat nativeScale 还有一个scale属性 但文档说它是 2 用于视网膜显
  • UICollectionView 未出现

    我正在尝试设置UICollectionView 以编程方式在我的视图控制器中扩展UIViewController 由于某种原因 我的收藏视图根本没有显示 以下是我所拥有的 为什么没有出现 我将它连接到委托和数据源并将其添加为子视图self
  • 我应该在哪个方法中设置 UITextField 的委托?

    在 viewDidLoad 或 init 方法中设置 UITextField 的委托是一个好习惯吗 我尝试在 init 方法中将委托设置为 self 但它没有调用相应的委托方法 当我将代码移动到 viewDidLoad 中时 它注册为将 s
  • 如何通过辅助功能 API 获取当前所选文本的全局屏幕坐标。

    我需要帮助来了解字典应用程序如何在任何应用程序上按 CMD CTRL D 时显示所选文本的以下弹出对话框 我想实施 我的可可应用程序具有相同的功能 我的应用程序将在后台运行 并显示有关所选文本的一些热键的建议 我已经实现了热键捕获 我只需要

随机推荐

  • jScroll如何实现?

    我是 JS 和 jQuery 的初学者 所以请耐心等待 我正在尝试创建一个动态列表 ul 使用JS 终于可以工作了 现在我需要在我的列表中实现无限滚动概念 使用jScroll http jscroll com plugin 所以我研究了很多
  • 无法将 postgres 与 keycloak 一起使用

    我正在尝试将 postgres 与 keycloak 一起使用 下列的Doc https www keycloak org docs latest server installation database ls keycloak 9 0 0
  • 返回 Web 服务迪斯科页面的 WCF 方法调用

    我有一个 WCF Web 服务和应用程序 在开发中运行良好 我已在 IIS 服务器上发布了 WCF 并且能够从防火墙内的 Web 应用程序使用它 并通过服务器名称对其进行寻址 然而 既然我已经把它拿出来供外部使用 它就会引起问题 我的网络应
  • 三层架构中BAL的使用?如何从DAL调用方法到BAL

    我是 3 层架构的新手 下面是我的 DAL 代码 public static int Insert string firstname string lastname DateTime dob string gender string ema
  • Elasticsearch:如何使精确匹配排名靠前?

    我想在一个字段中搜索项目 vision 但通过在 DSL 中使用 match match phrase term 我只得到了 vision A vision B xx version vision 等结果 我想要的是精确匹配 vision
  • python 日志记录根本不起作用

    我正在尝试在我的小型 python 项目中使用日志记录 按照教程 我将下面的代码添加到我的代码中 但消息没有按预期记录到文件中 import logging logging basicConfig filename a log filemo
  • 如何在 Windows 上设置 NODE_ENV=生产?

    在 Ubuntu 中这非常简单 我可以使用以下方式运行该应用程序 NODE ENV production node myapp app js 但是 这在 Windows 上不起作用 是否有可以设置属性的配置文件 当前版本的 Windows
  • 如何在prototxt文件中写注释?

    我找不到如何写评论prototxt files 有没有办法在 prototxt 文件中添加注释 如何 Thanks 您可以通过添加评论 char 之后的行中的所有内容都是注释 layer name aLayerWithComments I
  • 新的 Kubernetes 服务帐户似乎具有集群管理员权限

    我在新创建的 Kubernetes 服务帐户中遇到了奇怪的行为 看来他们的令牌在我们的集群中提供了无限的访问权限 如果我创建一个新的命名空间 在该命名空间内创建一个新的服务帐户 然后在新的 kube 配置中使用该服务帐户的令牌 我就能够在集
  • Python 中或仅 JavaScript 中的 BigQuery UDF

    我一直在研究如何在 BigQuery 中编写 UDF 并发现了以下语法 CREATE TEMPORARY TEMP FUNCTION function name named parameter RETURNS data type LANGU
  • 使用 Windows 身份验证的 Asp.Net Core 2.x Web 应用程序中的 User.Identity.Name 为 null

    Problem 当在 IIS 后面托管 Asp Net Core 2 0 或 2 1 Web 应用程序且 Windows 身份验证设置为 true 且匿名身份验证设置为 false 时 User Identity Name属性为 null
  • 制作类似支持自动删除临时文件和正则表达式模式规则的工具?

    我正在搜索一个类似 make 的构建工具 它支持 除了通常的 make 功能之外 自动删除临时创建的文件 例如在 GNU make 中 规则模式中的正则表达式 例如Cook http miller emu id au pmiller sof
  • 给定数的所有因数

    例如 我有 4800 我想查看这个数字的所有因数 num the number you want factors of def factors of num 1 num collect n n num n if num n n num co
  • 自动识别Pitest中哪些测试用例杀死了哪些突变体

    我正在使用 Pitest 进行突变测试 我的项目需要大量突变体 例如 500 个突变体 我需要一个矩阵来显示 Pitest 创建了哪些突变体 并被哪些测试用例杀死 我可以手动完成 但需要很长时间 可以自动完成吗 如果是 如何解决 如果否 我
  • Android ImageView NullPointerException

    我有两个图像 一个是红灯 一个是绿灯 我有一个自定义 ListView 我想在列表项处于非活动状态时显示红灯 在列表项处于活动状态时显示绿灯 按下时会激活列表项 这是我的代码 row xml
  • CSS,div 内的居中链接

    我怎样才能像这样集中我的链接 它们都集中在一个div 但它们从相同的距离开始 i am link 1 i am a longer link than link 1 i am a short link we are all centered
  • 有没有办法将文件的内容传递给curl?

    我想从命令行执行一个相当复杂的具有多部分 混合边界的 HTTP 请求 POST batch HTTP 1 1 Host www googleapis com Content length 592 Content type multipart
  • 使用 JMeter 将文件上传到 Rest API

    注意 我已经检查过BlazeMeter 教程 https www blazemeter com blog testing advanced rest api file uploads jmeter当我使用 文件上传 选项卡时 它将文档作为正
  • Python Excel 突出显示单元格差异

    前言 我是新人 自学成才 这是我的第一个编码项目 我知道这很糟糕 一旦完成并工作 我将重写它 我正在尝试编写一个 python 脚本来比较 2 个 Excel 文件并突出显示不同的单元格 我可以打印出差异 使用 pandas 并突出显示一个
  • 后台获取似乎不会发生火灾

    在我的应用程序中 我执行了下面列出的操作 并向应用程序提取例程添加了计数器 以突出显示 iOS 8 1 调用提取的次数 打开后台模式并启用后台获取 为 performFetchWithCompletionHandler 编写代码 NSLog