苹果表示,使用后台模式的应用程序在后台启动时不应执行昂贵、耗电的任务。究竟什么被认为是消耗面糊的任务?具体来说:搜索和 100 个条目的数组是否可以接受?1000呢?
2 回答
一项耗电的任务就是这样 - 一项使用大量 CPU 的任务,它会在电池上产生相当大的“凹痕”,如“电池百分比”屏幕所衡量的那样。为此,一次搜索 100、1000 或 1000000 个项目不太可能造成任何损害。另一方面,每秒搜索 50 次包含 10 项的列表很可能会使您的任务成为高能量消耗者。每分钟多次下载数据、使用位置服务等也是如此。
经验法则非常简单:转到“电池百分比”屏幕的“过去 24 小时”视图,查看您的应用是否在此处列出。如果它不存在,或者如果它在“主屏幕和锁定屏幕”下方,那么您的应用就可以了。
您引用的指南中的评论旨在防止人们在后台耗尽用户的电池。
由于许多应用程序在后台使用 GPS 和/或无线电,并且这些应用程序比搜索微型阵列更耗电,因此搜索一些阵列可能会很好,只要它具有合理的大小。
你不应该创建一个帮助 SETI 或折叠或搜索下一个最大素数的应用程序 - 或过度使用收音机。但是对于像你这样的小任务,这个指南是不用担心的。然而,这只是一个估计,最终,审查过程将根据具体情况做出决定。
苹果的一般经验法则是:
始终尽量避免做任何后台工作,除非这样做可以改善整体用户体验。应用程序可能会因为用户启动了不同的应用程序或者因为用户锁定了设备并且现在没有使用它而移动到后台。在这两种情况下,用户都在发出信号,表明您的应用现在不需要做任何有意义的工作。在这种情况下继续运行只会耗尽设备的电池电量,并可能导致用户完全强制退出您的应用程序。因此,请注意您在后台所做的工作,并尽可能避免。
因此,您要决定这是否可行的问题是:用户是否希望立即完成?而不是使用太多电池?. 如果搜索该数组不能推迟到应用程序再次处于活动状态时(我看不出不推迟它的原因,但可能有),您可以在后台搜索数组。