私のアプリケーションは GPS をサポートしており、フォアグラウンドとバックグラウンドの両方で実行されます。デバイスがロックされていない限り、完全に機能しているタイマーを開始しました。デバイスがロックされていてもタイマーを実行し続けたい。
これを行う方法を教えてもらえますか?
どちらの方法でタイマーを開始しても、デフォルトの実行モードは次のようになります。
Timer *timer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(run) userInfo:nil repeats:YES];
[[ NSRunLoop currentRunLoop ] addTimer:timer forMode:NSDefaultRunLoopMode ];
を使用してNSDefaultRunLoopMode
。もっと柔軟性が欲しいので、NSRunLoopCommonModes
代わりに forMode を take に変更すれば問題ありません。