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

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(使用前将#替换为@)

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

  • 为什么这会破坏 UILabel adjustmentFontSizeToFitWidth?

    iOS 7 Xcode 5 使用 UILabel 此代码可以工作 自动调整文本大小以适应 self testLabel numberOfLines 0 self testLabel lineBreakMode NSLineBreakByWo
  • 多次显示admob插页式广告怎么办?

    我有一个小型游戏应用程序 它有一个故事板 里面创建了像开始菜单 游戏区域 分数这样的场景 我在其中添加了 admob 横幅视图和插页式广告 我的横幅视图工作正常 但我的插页式广告只能工作一次 我在 viewdidload 上加载插页式广告
  • IBDesignable 和 UITableViewCell

    我正在尝试利用 XCode 6 中 Swift 的 IBDesignable 功能来创建 UITableViewCell 的子类 我在 WWDC 演示和网络上看到 您可以使用框架来创建视图 UIView 的子类 然后可以将其用于自定义 UI
  • 具有多个 sqlite 文件的核心数据

    如何将 Core Data 与多个 SQLite 文件一起使用 每个文件都包含相同的结构 但数据是从不同的位置检索的 我希望能够在运行时根据应用程序设置在这些 sqlite 文件之间切换 当然 只需指向持久存储协调器 NSPersisten
  • 从 Xcode 更改按钮文本?

    我有一个 IBAction 连接到 Interface Builder 中的一个按钮 是否可以在运行时从我的代码中更改按钮 在 IB 中 上的文本 如果您的代码中有一个连接到某个操作的按钮 则无需实例变量即可更改标题 例如 如果按钮设置为以
  • 如何在pop UIViewController中删除UIParallaxDimmingView?

    我有一个UIViewController vc1这是在之后推送的UIViewController vc2 Both vc1 and vc2具有透明背景 问题 当我尝试弹出时vc2使用交互式弹出手势 从边缘平移 在我看来堆栈显得很神秘UIPa
  • NSString 上的 stringWithFormat 与 initWithFormat

    我想知道以这种方式声明 NSString 有什么区别 例如缺点和 或优点 NSString noInit NSString stringWithFormat lolcatz d i 与以下相反 NSString withInit NSStr
  • 检查 UITableViewCell 是否完全可见

    如何检查 UITableViewCell 在屏幕上是否完全可见 不被选项卡或导航栏切断 我可以使用以下代码获取可见单元格 NSArray indexes tableView indexPathsForVisibleRows 但我想排除屏幕中
  • 如何使用自动布局在自定义 UITableViewCell 内动态设置 UITextView 高度

    I have UITableView every tableViewCell is custom Inside my customTableViewCell is a UITextView TextViews frame is pin or
  • 使用按计数分组的核心数据获取属性

    这是我想为 Core Data 编写的查询的 SQL 版本 SELECT Group Name COUNT Item Name FROM Item INNER JOIN Group ON Item GroupID Group ID GROU
  • 在 UICollectionView 下面插入子视图

    当我在 UICollectionView 下方添加子视图时 有时子视图会显示在 UICollectionView 单元格上方 这是子视图插入代码 self collectionView insertSubview self garmentV
  • UITableView 无法一直滚动到底部[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我只是好奇 我做了一些UITable
  • 子视图的子层与更高的子视图重叠

    我有一个问题 我正在创建一个UIView这是从方法返回的 这部分很好 但我注意到 当我将子层添加到其中一个子视图时 这些层与子层添加的层次结构中较高的子视图 textView 和 imageView 重叠到testViewCopy出现在这些
  • 永远不会在 ios 的 google API 中获取上传数据进度

    我在我的应用程序中使用 Google Drive API 从我的应用程序上传文件 到目前为止 我成功了 并找到了上传所有类型文件的良好结果 我跟着谷歌示例 https developers google com drive examples
  • 如何读取 Xcode 6.1 Instruments .trace 文件?

    我一直在尝试阅读 trace文件 我使用生成的custom仪器模板 仪器 自动机 分配 Leaks using 仪器 https developer apple com library mac documentation Developer
  • xcode“将源编译为”覆盖特定文件

    我有一个项目 必须将 编译源为 值设置为 Objective C 不 根据文件类型 在我的主项目中不起作用 我从框架 特别是 OpenFeint 获得的文件有问题 该文件在编译为 Objective C 时出现编译错误 error poin
  • 如何将 CIFilter 输出到相机视图?

    我刚刚开始使用 Objective C 我正在尝试创建一个简单的应用程序 它显示带有模糊效果的相机视图 我得到了与 AVFoundation 框架一起使用的相机输出 现在 我正在尝试连接 Core 图像框架 但不知道如何连接 Apple 文
  • 比较 Objective C 中的 NSNumber

    我是 Objective C 的初学者 对这种情况有点困惑 我有以下代码 if number1 lt number2 NSLog THE FOLLOWING NUMBER NSLog number1 NSLog IS LESS THAN N
  • 当自定义子视图处理触摸时防止 UITableView 滚动

    在我的 iOS 应用程序中 有一个 UITableView 其中一个单元格中包含一个自定义子视图 该单元格是一个交互式视图 它处理触摸事件 touchesBegan touchesEnded touchesMoved 以更新自身 问题是 当
  • 使用 Cocoa/OSX 合并/堆叠两个图像

    我有一个 CGImageRef 我们称之为原始图像 和一个透明 png 水印 我正在尝试编写一种方法将水印放置在原始内容之上 并返回 CGImageRef 在 iOS 中 我会使用 UIKit 将它们绘制到上下文中 但这在 OSX 中似乎不

随机推荐

  • 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