0

「-applicationDidEnterBackground」メソッドの beginBackgroundTaskWithExpirationHandler コード ブロックでは、nstimer を次のように実装しています。

UIBackgroundTaskIdentifier taskId = [application beginBackgroundTaskWithExpirationHandler:^{
        timer = [NSTimer scheduledTimerWithTimeInterval:0.0 target:self selector:@selector(print:) userInfo:nil repeats:NO];
    }]; 

そしてrepeats:NO、セレクターとしての「print」メソッドは2回呼び出されますが、それは私が見ることができますNSLog

このタイマーは、 以外の場所からは呼び出されていませんapplicationDidEnterBackground

4

1 に答える 1

1

私はあなたに何の問題もないことを保証します:

timer = [NSTimer scheduledTimerWithTimeInterval:0.0 target:self selector:@selector(print:) userInfo:nil repeats:NO];

「print」メソッドは 2 回呼び出されません。あなたの問題は他の何かにあります。もう1つ、時間間隔が0.0のタイマーはかなり無意味です。

于 2012-06-20T10:59:28.403 に答える