iOS - 根据手机时钟按时间执行特定代码的程序方法

时间:2012-06-13 16:15:32

标签: ios timing

是否可以在iPhone的时钟上达到特定时间时执行代码。在iPhone关闭后(屏幕变黑)这是否能够正常工作但应用程序仍在运行(用户没有返回主屏幕)。

例如,是否有可能将方法设置为在下午1:30:15关闭,与当前时间无关,是否有任何限制,具体取决于手机是否关闭或应用程序在后台运行?

我在这里找到了类似的帖子如何在C#的特定时钟生成事件?但是这会根据当前运行方法的时间生成一个计时器,而不是使用与当前时间无关的时钟。

我创造了一种糟糕的方式 -

{

time_t rawtime;
struct tm * timeinfo;

time ( &rawtime );
timeinfo = localtime ( &rawtime );
NSLog(@"TESTSTART - TEST START");
// Check
if(timeinfo->tm_hour == 12 && timeinfo->tm_min == 01 && timeinfo->tm_sec == 48)
{
    NSLog(@"Run Method");

    printf("the time is 12:01:48");
}    else {
    NSLog(@"ELSE");

    [self syncTest];
}
}

这将在12:1:48运行一个方法,但这很可能不是一种可接受的方法。有没有人知道有什么更好的方法可以做到这一点以及这种方式给cpu带来了多大的压力?感谢

1 个答案:

答案 0 :(得分:1)

使用NSTimer并将fireDate设置为您希望定时器触发的日期,然后捕获已触发的通知并执行任务。