1

アプリケーションがバックグラウンドにあるときに私の調査が正しければ、アプリケーションは実際に中断されています。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;

    }
}
4

1 に答える 1

0

残念ながら、私はこの10分間のバックグラウンドタスクをアプリでも使用しています。私が行った調査によると、これがバックグラウンドでメソッドを実行する唯一の方法です。それがあなたの質問に答えることを願っています

于 2012-05-01T20:50:19.483 に答える