是否可以在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带来了多大的压力?感谢
答案 0 :(得分:1)
使用NSTimer
并将fireDate
设置为您希望定时器触发的日期,然后捕获已触发的通知并执行任务。