如何检查设备是否每小时都在使用

时间:2013-04-09 02:29:08

标签: ios objective-c nstimer

我正在尝试弄清楚如何在我的应用运行时启动方法调用。

我已经创建了以下方法,该方法在加载ViewController后启动,但问题是,它运行一次,但从不再运行..

这就是我的代码。

#define kMaxAliveTimeSeconds 5.0

// currently only running the query every 5 seconds for testing
- (void)deviceTimer {
    if (!isAliveTimer) {
        isAliveTimer = [NSTimer scheduledTimerWithTimeInterval:kMaxAliveTimeSeconds
                                                     target:self
                                                   selector:@selector(deviceIsAlive)
                                                   userInfo:nil
                                                    repeats:NO];
    }
    else {
        if (fabs([isAliveTimer.fireDate timeIntervalSinceNow]) < kMaxAliveTimeSeconds-0.5) {
            [isAliveTimer setFireDate:[NSDate dateWithTimeIntervalSinceNow:kMaxAliveTimeSeconds]];
        }
    }
}

- (void)deviceIsAlive {
 // do stuff here
}

唯一的东西是deviceIsAlive被调用一次,但之后再也没有。

1 个答案:

答案 0 :(得分:2)

在定时器分配语句中设置重复:YES(因此它会自动重复,否则nstimer会在第一次后自动失效)或者在deviceIsAlive函数中分配新的定时器。