0

我知道围绕这个话题已经提出了很多问题。但是,我写这个是因为他们似乎没有专门回答我的问题,而且有些没有列出任何正确答案。

我想在我的 iPhone 应用程序中执行的操作 在应用 程序未运行时获取一些数据(基本上,这是一个预取,以便在用户下次使用该应用程序时加快它)。最好的方法是什么?

一些潜在的解决方案 那些我能想到的&一些来自 Stackoverflow 的&这些资源:

可能性 1:在一天中的特定时间(可能在午夜之后?)获取数据。如果这首先可能的话,我并没有“清楚地”看到如何做到这一点。有人建议使用NSTimer -> 但是当应用程序暂停时计时器会被推迟,对吗?

可能性2:使用本地通知(?)但是我看到Apple的文档特别提到该通知将用于向用户传达某些信息,因此这将违反Apple的文档,对吗?

可能性3:通过 applicationDidEnterBackground -> beginBackgroundTaskWithExpirationHandler。不过,这不会在一天中的特定时间运行提取。但是,它可能会达到“预”提取的目的。这比其他两个好吗?

请问有什么想法吗?

4

2 回答 2

1

正如 samfisher 所说,没有你的规格。符合苹果主动后台要求。我唯一可以建议您的是使用beginBackgroundTaskWithExpirationHandler 我理解的“后取”而不是预取,但我想这是唯一的方法。
另一种方式,但有点棘手,是用某种地理位置伪装你的预取,这样你就可以选择一个活跃的背景。这涉及很多方面,例如:

  • 应用商店拒绝
  • 电池消耗

应用商店上有很多应用程序使用这个技巧,我记得一个计算数据流量的应用程序。

于 2012-09-16T12:54:04.087 回答
1

正如您已经知道的那样,您提供的任何选项都不适用于 ios,并且用户始终可以关闭后台应用程序,因此我建议您最好在下一个日历日获取数据应用程序正在运行。

于 2012-09-16T12:07:56.300 回答