iOS应用程序在后台执行期间死机
问题描述:
我有一个应用程序,其背景位置和获取模式已激活。 它获取用户位置,将其发送到服务器,读取结果(JSON)并触发本地通知。 此过程已在iPhone 4S上每15,60和180秒进行一次测试。iOS应用程序在后台执行期间死机
问题来了。
如果应用程序进入后台,大约3分钟后,它会冻结并停止与服务器的通信。我可以在调试导航器中看到来自Xcode的内存:内存已分配,但CPU和能源影响为零。 这个问题可以复制,打开一个像Youtube一样沉重的应用程序:在这种情况下,应用程序冻结几秒钟后。 最有可能的iOS本身冻结应用程序。 我的问题是:有什么办法可以防止这种冻结或解冻应用程序而不恢复它?
答
PLZ使用此代码
您的位置马槽集setAllowsBackgroundLocationUpdates财产
if ([self.locationManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) {
[self.locationManager setAllowsBackgroundLocationUpdates:YES];
}
您还可以检查后台remming时间
NSLog(@"%f",[UIApplication sharedApplication].backgroundTimeRemaining);
您已经选择了位置更新后台模式,你应用程序将“解冻”,并且一旦用户改变他的位置:)每次用户基于距离f改变他的位置时,地点代表被调用ilter你已经指定:)在位置更新委托你可以使用NSURLSession和会话管理器来与你的服务器进行通信。如果您需要频繁调用您的应用,请将距离设置为最准确的过滤器。使用位置永远是一种折衷,请记住您的应用可能会耗尽用户的电池:)仅根据您的需求使用它 –