我有一个在后台注册位置更新的应用程序。每当更新位置时,我都需要遍历一个NSMutableArray
坐标来查看哪个坐标离用户最近。
有时出于记忆的原因,手机会杀死我的应用程序(尽管它仍然注册以接收位置更新),以及我NSMutableArray
的坐标。
因此,每当位置更新出现时,我必须检查我NSMutableArray
的坐标是否仍然存在,如果没有,我想从 SQLite 表中重新填充它。
在运行了一些测试之后,似乎没有从 SQLite 表重新填充我的坐标数组,这是我在位置更新时运行的代码:
bgTask = [[UIApplication sharedApplication]beginBackgroundTaskWithExpirationHandler:^{[[UIApplication sharedApplication] endBackgroundTask:bgTask]}];
if(coordArray == nil || coordArray.count == 0)
{
[self readCoordinatesFromDatabase];
}
else
{
//Check which coordinate is closest to the user.
}
if(bgTask != UIBackgroundTaskInvalid)
{
[[UIApplication sharedApplication] endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}
在这种情况下,我是否不允许从 SQLite 读取数据?
每当发生位置更新时,我绝对需要能够通过我的坐标数组(在后台),即使应用程序在一段时间后被杀死,我该怎么做?