アプリケーションがバックグラウンドにあるときに私の調査が正しければ、アプリケーションは実際に中断されています。Apple がサポートするバックグラウンド タスクの方法は、場所、音声、および SIP タイプのアプリケーションです。これは正しいですか?
バックグラウンドで60秒ごとにメソッドを実行するためにAppleがサポートするメソッドはありますか? サーバーのステータスを確認する必要があります。次のコードは必要なことを行いますが、10分後に停止します。これは、Appleがサポートする別の方法だと思います。これが可能か不可能かについての提案や確認は役に立ちます。
以下のコードは、10 秒ごとに実行され、バッジ カウントを更新するタスクを作成するだけです。
よろしく
- (void)viewDidLoad
{
[super viewDidLoad];
count=0;
counterTask = [[UIApplication sharedApplication]
beginBackgroundTaskWithExpirationHandler:^{
// If you're worried about exceeding 10 minutes, handle it here
}];
theTimer=[NSTimer scheduledTimerWithTimeInterval:5
target:self
selector:@selector(countUp)
userInfo:nil
repeats:YES];
}
- (void)countUp {
NSLog(@"%s - %d", __FUNCTION__, count + 1 );
if (count==1000) {
[theTimer invalidate];
[theTimer release];
[[UIApplication sharedApplication] endBackgroundTask:counterTask];
} else {
count++;
NSString *currentCount;
currentCount=[[NSString alloc] initWithFormat:@"%d",count];
[currentCount release];
[UIApplication sharedApplication].applicationIconBadgeNumber = count;
}
}