Ios 输入ApplicationIDBecMeactive时本地通知不起作用
我使用重复本地标记向用户显示警报。为此,我使用了下面的代码Ios 输入ApplicationIDBecMeactive时本地通知不起作用,ios,objective-c,ios7,uilocalnotification,Ios,Objective C,Ios7,Uilocalnotification,我使用重复本地标记向用户显示警报。为此,我使用了下面的代码 UILocalNotification* localNotification = [[UILocalNotification alloc] init]; localNotification.fireDate = [[NSDate date] dateByAddingTimeInterval:60]; localNotification.alertBody = @"sss"; localNotification.alertAction =
UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = [[NSDate date] dateByAddingTimeInterval:60];
localNotification.alertBody = @"sss";
localNotification.alertAction = @"Show me the item";
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
使用NSNotification Center,我将每60秒呼叫一次本地通知。它工作得很好
在Appdelegate中,我还使用以下代码:-
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
NSLog(@"Received");
UIApplicationState state = [application applicationState];
if (state == UIApplicationStateActive) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"RestartProcess" object:self];
}
application.applicationIconBadgeNumber = 0;
}
也
我的问题是,当本地通知启动时,我按下home按钮,然后等待显示。时间段结束后,显示一条通知消息。
当我单击应用程序图标时,进程停止。在此之后,本地通知不起作用。但当我单击通知消息时,它将正常工作。我如何解决此问题。有人可以帮助我做到这一点吗。提前感谢。只有当您点击通知消息页面时,才会调用didReceiveLocalNotification。如果要在ApplicationIDBecomeActive中执行此操作,必须手动执行 您可以检查徽章编号计数(如果通知包含徽章),如:
按主页按钮时:
UIApplicationState state = [application applicationState];
// at this time, state == UIApplicationStateInactive
当您单击应用程序时,我认为您应该使用以下方法实现:
- (void)applicationDidBecomeActive:(UIApplication *)application- (void)applicationWillEnterForeground:(UIApplication *)application
{
UIApplicationState state = [application applicationState];
application.applicationIconBadgeNumber = 0;
//state at this time is UIApplicationStateInactive
if (state == UIApplicationStateInactive) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"RestartProcess" object:self];
}
}
希望这对你有帮助
UIApplicationState state = [application applicationState];
// at this time, state == UIApplicationStateInactive
- (void)applicationDidBecomeActive:(UIApplication *)application- (void)applicationWillEnterForeground:(UIApplication *)application
{
UIApplicationState state = [application applicationState];
application.applicationIconBadgeNumber = 0;
//state at this time is UIApplicationStateInactive
if (state == UIApplicationStateInactive) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"RestartProcess" object:self];
}
}