バックグラウンド
私は iOS 開発 (および Objective C) の学習の初期段階にあります。フォローした最新のチュートリアルの後、レッスンをもう少し進めることにしました。
チュートリアルの後、LocalNotification
ユーザーが設定した時間に起動する目覚まし時計アプリケーションを作成しました。ローカル通知は、アプリがバックグラウンド モードのときにアラーム音を鳴らすだけだったので、あまり目覚まし時計とは思えませんでした。そこで、アプリを開いてフォーカスを合わせている間にアラーム機能を追加することにしました。
今いる場所
目覚まし時計アプリケーションは正常に機能します。アプリが開いている場合、ユーザーはUIAlertView
とアラーム音を受け取ります。
問題
をトリガーするために、メソッドUIAlertView
を使用しています。didReceiveLocalNotification:
didReceiveLocalNotification:
ユーザーが設定した時刻とが呼び出される時刻の間には、かなり大きな遅延があります。正確には38秒。
つまらないことかもしれませんが、理由がわからないのは私を殺している. GitHub を検索して他の例を見つけましたが、それらはすべて私と同じパターンに従っているようです。
このような遅延の原因は何ですか? これが通常の動作である場合、遅延をなくすにはどうすればよいですか?
私のコードが役立つかどうか教えてください。事前定義されたメソッドであるためdidReceiveLocalNotification:
、呼び出されるタイミングを制御できないため、必要なコードがわかりません。
追加情報
アラーム時刻の設定方法
- (void) scheduleLocalNotificationWithDate: (NSDate *) fireDate
{
UILocalNotification *backgroundNotification = [[UILocalNotification alloc] init];
backgroundNotification.fireDate = fireDate;
backgroundNotification.alertBody = @"Wake Up!";
backgroundNotification.soundName = @"My_Alarm.mp3";
[[UIApplication sharedApplication] scheduleLocalNotification: backgroundNotification];
}