Моя проблема в том, что приложение находится в фоновом режиме и уведомление приходит, и я открыл приложение с icon; приложение восстанавливает его, но я хочу обновить данные экрана в этом случае. Есть ли способ обновить данные в фоновом режиме при поступлении уведомления?iOS: Если приложение находится в фоновом режиме и прибывает местное уведомление; какой метод будет вызван автоматически?
Вот код, который я использую для решения этого дела:
ViewController.m
код файла:
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(appIsComingFromBackground:)
name:UIApplicationDidBecomeActiveNotification
object:nil];
// Do any additional setup after loading the view, typically from a nib.
}
- (void) appIsComingFromBackground:(NSNotification *) note {
// code
NSString *hasMessage = [[NSUserDefaults standardUserDefaults] objectForKey:@"alertmsg"];
if([hasMessage length]!=0)
{
_labelText.text = hasMessage;
[[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"alertmsg"];
}
else{
_labelText.text = @"";
}
}
AppDelegate.m
код файла:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
if (application.applicationState == UIApplicationStateActive) {
}
else if(application.applicationState == UIApplicationStateBackground || application.applicationState == UIApplicationStateInactive)
{
[[NSUserDefaults standardUserDefaults] setObject:notification.alertTitle forKey:@"alertmsg"];
}
NSLog(@"Alert Message: %@", notification.alertTitle);
NSLog(@"Alert Body: %@", notification.alertBody);
}
Если приложение приостановлено, то ни один из методов делегата приложения не вызываются, когда локальное оповещение показано. – Paulw11
@ Paulw11, так что для решения этой проблемы нет решения? –
Можно ли каким-либо образом обновить данные, если пользователь не открыл приложение извещения, но он открыт из значка? –