2

私はこれを手伝ってくれる専門家がそこにいることを願っています:

私はそれを何時間もグーグルで検索しましたが、アプリがバックグラウンドで実行されているときに実行中のNSTimerをアクティブに保つ方法がある場合、情報を見つけることができませんでしたか?

問題のシナリオは、ボタンクリック時にカウントダウンタイマーを設定する必要があることです。ボタンのタイトルとして残り時間が表示されます(02:34:45)。アプリケーションがバックグラウンドに入ったとき、またはアプリケーションが一時停止されたときに、タイマーを実行し続けるにはどうすればよいですか。アラームの残り時間を維持する方法、アラーム用に選択された値(2時間、3分など)を教えてください

助けてくれてありがとう!

4

1 に答える 1

4

アラームに使用している場合は、ローカル通知を使用することをお勧めします。そうすれば、バックグラウンド処理モードを使用する必要がなくなります。

applicationWillResignActiveアプリが (アプリ デリゲート内またはアプリ デリゲート上で)バックグラウンドに移行しようとしてapplicationDidEnterBackgroundいるときに、タイマーの残り時間を取得します。次に、その遠い将来のローカル通知をスケジュールします。

NSTimeInterval timeUntilNotification = ...

UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = [[NSDate date] dateByAddingTimeInterval:secondsUntilNotification];
localNotif.soundName = UILocalNotificationDefaultSoundName;

[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

アプリが再びアクティブになったら、必ず ですべての通知をキャンセルしてくださいcancelAllLocalNotifications

于 2012-05-14T09:58:59.780 に答える