本地通知调用单独的方法
Local Notifications Call Separate Method
我试图重复触发本地通知,但我希望它在每次发送通知时调用另一个方法。这可能吗?
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil) return;
//Repeat every 60 seconds
NSDate *fireTime = [[NSDate date] dateByAddingTimeInterval:60];
localNotif.fireDate = fireTime;
localNotif.alertBody = @"Notification Sent!"; //send notification
localNotif.repeatInterval=kCFCalendarUnitMinute;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
//call method??
我想调用这个方法:
-(void) callAfterSixtySecond
{
//do something
}
是也不是。如果应用程序在通知触发时处于活动状态,则 application:didReceiveLocalNotification:
将在应用程序委托中调用,您可以使用它来调用该方法。但是,如果应用程序在后台运行,则除非用户通过点击通知中心的通知启动应用程序,否则不会调用此方法,因此不会在通知首次触发时调用。
您可以执行此操作的一种方法是使用如下内容单独安排方法:
[self performSelector:@selector(callAfterSixtySecond) withObject:nil afterDelay:60];
只要应用程序在该方法应该 运行 时仍有处理时间,这就会起作用。如果用户关闭了应用程序,它通常只有大约 10 秒的处理时间,但在相同情况下,可以通过启动后台任务来增加处理时间(参见 UIApplication
中的 beginBackgroundTaskWithName:expirationHandler:
)。
我试图重复触发本地通知,但我希望它在每次发送通知时调用另一个方法。这可能吗?
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil) return;
//Repeat every 60 seconds
NSDate *fireTime = [[NSDate date] dateByAddingTimeInterval:60];
localNotif.fireDate = fireTime;
localNotif.alertBody = @"Notification Sent!"; //send notification
localNotif.repeatInterval=kCFCalendarUnitMinute;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
//call method??
我想调用这个方法:
-(void) callAfterSixtySecond
{
//do something
}
是也不是。如果应用程序在通知触发时处于活动状态,则 application:didReceiveLocalNotification:
将在应用程序委托中调用,您可以使用它来调用该方法。但是,如果应用程序在后台运行,则除非用户通过点击通知中心的通知启动应用程序,否则不会调用此方法,因此不会在通知首次触发时调用。
您可以执行此操作的一种方法是使用如下内容单独安排方法:
[self performSelector:@selector(callAfterSixtySecond) withObject:nil afterDelay:60];
只要应用程序在该方法应该 运行 时仍有处理时间,这就会起作用。如果用户关闭了应用程序,它通常只有大约 10 秒的处理时间,但在相同情况下,可以通过启动后台任务来增加处理时间(参见 UIApplication
中的 beginBackgroundTaskWithName:expirationHandler:
)。