AppDelegate.h
@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
UIBackgroundTaskIdentifier bgTask;
}
AppDelegate.m
- (void)applicationDidEnterBackground:(UIApplication *)application
{
bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
[application endBackgroundTask:bgTask];
}];
}
以上でアプリがバックグランドに回っても動作し続けるが、10分までという制限がある。
しかし音声を再生したり、GPSを使っている場合は、イベントによって再度動かせる。
例えばGPSを使ってロケーションを取得していれば、ロケーションが変わったときに
ふたたび動き出す。
GPSをバックグランドで使うには、info.plistの編集が必要。
Information Property List の右の+をクリックして、Required background modesを選び、
item0のValueで、App registers for location updates を選ぶ。