スケジュールするためのこのコードがありますUILocalNotification
:
UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.userInfo = @{PLANNED_EVENT_ID : @"some id"};
localNotification.fireDate = someStartDate;
localNotification.alertBody = @"Some text";
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
このメソッドは、アプリケーションがフォアグラウンドにあるときに上記を設定すると期待どおりに機能しますが、アプリケーションがバックグラウンドにある (ホーム ボタンを押した) ときにこのコードを使用すると、まったく起動しませんか?
なぜこれがうまくいかないのでしょうか?必要な結果を得るにはどうすればよいですか? アプリケーションがバックグラウンドにあるときにこのコードを使用できるようにする必要があります。
ありがとう!
より明確にするために、私のAppDelegate
私には方法があります
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)
このメソッド内で最初の通知を受け取ると (これは機能し、View Controller でスケジュールされます)、同じ方法で別の通知をスケジュールします (今から 1 分後)。そのため、アプリケーションをフォアグラウンドにしようとしましたが、機能しましたが、バックグラウンドにすると機能しませんでした。
ただし、シミュレーターでテストされています。