2012-05-14 16 views
2

にあるとき、私はこれで私を助けることができるそこに専門家があります願っていますNSTimerが稼働しておいてください。アプリがバックグラウンド

私は時間のためにそれをグーグルではなく、ランニングを保つためにどのような方法がある場合は任意の情報を見つけることができませんでしたアプリがバックグラウンドで実行されているときにNSTimerがアクティブになっていますか?

問題のシナリオでは、ボタンをクリックしてカウントダウンタイマーを設定する必要があります。左の時間はボタンのタイトルとして表示されます(02:34:45)。アプリケーションがバックグラウンドに入ったり、中断されたりすると、タイマーはどのように動作し続けますか?私はアラームのために残された時間をどのように維持することができますか?(2時間、3分のような)アラームのために選択された値は何ですか?

ありがとう!

+0

そこにはバックグラウンド実行についての何かがあると思います...しかし、私はapplicationWillResignActive:appにdatetimeを保存する方が良いと思います。デリゲートのメソッドを呼び出し、残りの時間をapplicationDidBecomeActive:メソッドで再計算します。 幸い! ;) –

+0

ありがとうございました..私はそれが動作すると思う:)。あなたはその唯一の解決策だと思うのでしょうか、他の代替案を掘ることができますか? – Gaurav

答えて

4

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

アプリが背景を入力しようとしているとき(あなたのアプリデリゲートのapplicationWillResignActiveまたはapplicationDidEnterBackground)、タイマーにはどれくらい時間がありますか。そして、遠い将来にはそのためのローカル通知をスケジュール:あなたのアプリが再びアクティブになると

NSTimeInterval timeUntilNotification = ... 

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

[[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; 

は、cancelAllLocalNotificationsですべての通知をキャンセルすることを確認してください。

関連する問題