Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 输入ApplicationIDBecMeactive时本地通知不起作用_Ios_Objective C_Ios7_Uilocalnotification - Fatal编程技术网

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];
 }
}