【问题标题】:What am I allowed to do in the background when didUpdateToLocation receive a message?当 didUpdateToLocation 收到消息时,我可以在后台做什么?
【发布时间】:2011-01-20 14:12:52
【问题描述】:

据我了解,我的应用程序将接收到该方法的消息:

- (void) locationManager:(CLLocationManager *)manager
         didUpdateToLocation:(CLLocation *)newLocation 
         fromLocation:(CLLocation *)oldLocation

即使它在后台(如果我设置正确的话)。

在这种方法中我可以做什么?我想存储坐标等是可以的,但是我可以发出服务器请求并传递我的坐标吗?

【问题讨论】:

  • “大声”是指你能听到的东西。 “允许”是指您被允许做的事情:-)

标签: iphone ios ios4


【解决方案1】:

您可以使用标准位置服务,这还需要您在 plist 中声明您的应用需要不间断的后台执行。这将使您的应用程序可以在后台无限期地执行,但会消耗大量电力资源。您可以进行 Web 服务调用或提供与用户交互的其他方式。

对于非导航应用,推荐的第二种方法是使用显着变化的位置服务,该服务仅在用户位置发生显着变化时“唤醒”您的应用进入后台模式。在这种情况下,您将获得有限的时间来完成代码执行,因此不建议进行 Web 服务调用,因为它们可能无法在有限的时间内完成并导致应用程序被操作系统终止。

更多信息,请参阅iOS Application Programming Guide 还有Location Awareness Programming Guide

【讨论】:

    【解决方案2】:

    您应该能够发送请求(即操作系统不会阻止您),但由于您只有有限的时间,因此无法保证它会通过 - 特别是如果您还需要服务器的响应。

    【讨论】:

    • 我可以向操作系统请求更多时间,对吧?还是只有当我第一次进入后台状态时?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 2011-07-02
    相关资源
    最近更新 更多