相关疑难解决方法(0)

在后台持续运行应用程序

我想让我的应用程序继续在后台运行位置服务.为此我用过:

-(void)applicationDidEnterBackground:(UIApplication *)application {

    [locationManager stopUpdatingLocation];
    [locationManager startUpdatingLocation];

    //timer=[NSTimer scheduledTimerWithTimeInterval:300 target:self selector:@selector(UpdateLocation) userInfo:nil repeats:YES];

}
Run Code Online (Sandbox Code Playgroud)

但是当我使用NSTimer它时不会打电话UpdateLocation.我尝试使用另一种方法调用它,但之后它也只调用一次.

我想在后台持续运行应用程序,在定期间隔后检测位置.

iphone cocoa-touch cllocationmanager ios

6
推荐指数
1
解决办法
7943
查看次数

如何在iOS 7的后台保持NSTimer活着?

我创建了在后台运行NSTimer的Application.我使用位置管理器在后台运行NSTimer,

我使用下面的链接在后台运行NSTimer,

如何在iOS应用程序中每n分钟更新一次后台位置?

这种方法在iOS 6中运行良好,但在iOS 7上无效.我的应用程序在iOS 7后面的应用程序中应用程序崩溃了一段时间.

如果有任何不同的方法在后台运行NSTimer,请告诉我.

提前致谢.

iphone cocoa-touch objective-c ios7

5
推荐指数
1
解决办法
1万
查看次数

在iOS 8中定期更新计时器/背景中的位置

如果应用程序处于后台状态或处于前台状态,我希望每5分钟更新一次用户的位置.这是一个非常敏感的应用程序,所以在任何时候都知道位置是至关重要的.

关于这个问题有很多关于SO的答案,但是很多都是针对iOS 6及更早版本的.在iOS 7之后,许多后台任务已经改变,我很难找到在后台实现定期位置更新的方法.

core-location ios

5
推荐指数
1
解决办法
2388
查看次数

用于后台位置更新的iOS最佳做法

概观

我的公司要求我发布一个可以每两个小时检查一次设备位置的应用程序.应用程序会通过TCP/IP套接字将这些位置数据发送到我的服务器,然后根据这些非常数据(直接通过相同的TCP/IP套接字)接收信息.所以我不是试图让我的应用程序在后台模式下连续运行(实际上,这似乎是iOS中的热门话题,而且它也不适合我的项目).

为了可靠,实现这一目标的最佳做法是什么?所以,我想知道:

  • 由于我的应用程序被暂停(=无效),Apple是否允许打开套接字以便在被唤醒时发送位置didUpdateToLocation
  • 我需要多长时间才能通过套接字执行发送/接收任务?
  • 我应该创建一个真正的后台任务beginBackgroundTaskWithExpirationHandler并使用Cocoa允许的10分钟来执行我的发送/接收任务吗?
  • 有可能(并允许Apple)每2小时要求一次10分钟的后台任务,没有人工干预(即用户应该重新打开应用程序等)?

到目前为止我取得的成就/发现

  • 我在我的应用程序处于非活动状态时添加了location密钥Info.plist以便能够运行didUpdateToLocation处理程序.
  • 我可以通过我的应用程序处于前台(=活动)时打开的套接字发送和接收数据.
  • 我试着检查backgroundTimeRemaining什么时候didUpdateToLocation被调用.我得到了一个非常大的结果数,这似乎是正常的,因为在这一点上,applicationState它不在UIApplicationStateBackground但是在UIApplicationStateActive.

这些要点在官方文档中并不十分清楚,我没有找到与我的具体案例相关的主题.

谢谢你的帮助.

sockets cocoa-touch background-process core-location ios

3
推荐指数
1
解决办法
2076
查看次数

1
推荐指数
1
解决办法
5268
查看次数

CLLocationManager更新频率

我已经按如下方式配置了locationManager.

_locationManager = [[CLLocationManager alloc] init];
[_locationManager setDelegate:self];
[_locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
[_locationManager setDistanceFilter:kCLDistanceFilterNone];
Run Code Online (Sandbox Code Playgroud)

当应用程序运行时,我从委托方法获得一些更新.当我不改变位置,并且移动设备静止约2小时后,我在前10分钟内收到大约10-12个更新,然后停止接收更新.

我所理解的是,理想的准确度是设备将继续尝试越来越精确的方法来获取当前位置的时间.所以在我的情况下,需要大约10分钟才能获得所需的精度.

我想确认这是否属实.还有一种方法可以让我获得定期的位置更新,即使设备没有移动?

iphone core-location cllocationmanager ios4

1
推荐指数
1
解决办法
6883
查看次数