0

リマインダーアプリを開発したい。毎週、毎月、四半期ごと、半年ごと、年ごとに人々に思い出させる必要があります。

NSDate プロパティを使用して現在の日付を取得し、現在の日付に 7 日を追加しています。7 日を追加した後の日付が plist に保存されます。

電話/メール/メッセージボタンを選択して、人々に思い出させます。ボタン アクションで、現在の日付と plist に保存された日付を比較し、ローカル通知を設定します。しかし、ローカル通知は発火日に従って機能していません。アプリがフォアグラウンドにあるときは正常に動作していますが、バックグラウンドに入ると動作しません。

4

1 に答える 1

0

アラームをスケジュールする必要があります。以下は、Apple のドキュメントの抜粋です。

- (void)scheduleAlarmForDate:(NSDate*)theDate
{
    UIApplication* app = [UIApplication sharedApplication];
    NSArray*    oldNotifications = [app scheduledLocalNotifications];

    // Clear out the old notification before scheduling a new one.
    if ([oldNotifications count] > 0)
        [app cancelAllLocalNotifications];

    // Create a new notification.
    UILocalNotification* alarm = [[UILocalNotification alloc] init];
    if (alarm)
    {
        alarm.fireDate = theDate;
        alarm.timeZone = [NSTimeZone defaultTimeZone];
        alarm.repeatInterval = 0;
        alarm.soundName = @"alarmsound.caf";
        alarm.alertBody = @"Time to wake up!";

        [app scheduleLocalNotification:alarm];
    }
}

Apple のドキュメント「App States and Multitasking」、特に「Background Execution and Multitasking」セクションで、多くの役立つ情報を見つけることができます(ユース ケースを正確にカバーしています)。

于 2013-04-04T16:04:48.253 に答える