我有一个使用定位服务的应用程序。当应用程序在前台和后台时,它都会将位置数据发送到服务器。
系统是否会因为大量使用定位服务而强制终止我的应用程序?或者是我的测试人员注意到的位置数据中的“差距”是由于GPS/互联网信号差?
发布于 2015-07-14 15:19:58
根据App Programming Guide for iOS的说法
在App Termination部分(已添加强调)中,
应用程序必须做好随时终止的准备,而不应等待保存用户数据或执行其他关键任务。系统启动的终止是应用程序生命周期的正常部分。系统通常会终止应用程序,以便可以回收内存并为用户启动的其他应用程序腾出空间,但系统也可能会终止行为不佳或未及时响应事件的应用程序。
苹果没有定义“行为不端”,但在后台频繁地请求网络或GPS定位根本不是一个好公民。您可以通过订阅精度较低的位置更改来降低这些更新的频率。(苹果强烈推荐重大变化的位置服务。)
除非精确和连续的位置数据对你的应用程序至关重要(例如,导航应用程序可能就是这种情况),否则你应该尝试在后台状态下限制你对位置服务的使用。
来自同一指南的Background Execution section,
需要在后台运行以支持特定类型任务的
应用程序可以声明它们支持一种或多种后台执行模式。
因此,如果您碰巧需要尽可能精确的位置更新,并且您正确地声明了对该后台模式的支持,则系统可能会更容忍任何频繁的后台任务执行、资源占用或其他“不当行为”。然而,声明对后台模式的支持并不能免除您的应用程序尝试最小化其资源使用占用;您仍然应该尽最大努力成为一个好公民。
回答你的问题,
https://stackoverflow.com/questions/31400003
复制相似问题