時計アプリケーションを作成しています。ストップウォッチとタイマー付き。アプリがバックグラウンドになると (つまり、ユーザーがホーム画面に移動する、別のアプリに切り替える、または電話をロックする)、タイマーとストップウォッチがカウントを停止します。バックグラウンドに入った後も引き続き動作するアプリをいくつか知っています。
実行し続けるために変更できる設定はありますか?
時計アプリケーションを作成しています。ストップウォッチとタイマー付き。アプリがバックグラウンドになると (つまり、ユーザーがホーム画面に移動する、別のアプリに切り替える、または電話をロックする)、タイマーとストップウォッチがカウントを停止します。バックグラウンドに入った後も引き続き動作するアプリをいくつか知っています。
実行し続けるために変更できる設定はありますか?
次のような変数を作成します
self.timeBeforeGoingBackgound = [NSDate date];
その後、使用して時間を得ることができます
[[NSDate date] timeIntervalSinceDate:self.timeBeforeGoingBackgound];
正確な質問に対する短い答えはNOです。アプリケーションがバックグラウンド モードになっている間は、アプリケーションに何らかのアクションを実行させることはできません。
ここでは、バックグラウンドで動作できるものについて説明している Apple の Doc を見つけることができます。
NSUserDefaults
また、あなたの場合、たとえばこのAppDelegateのメソッド が呼び出されたときに現在の時間を保存するストップウォッチを実装し、メソッドapplicationDidEnterBackground
で経過時間を更新するのは簡単ですapplicationDidBecomeActive
バックグラウンドに移行するときに状態を保存し、フォアグラウンドに戻るときに状態を復元する必要があります。これは、タイマーと実際のタイミング データの両方を意味します。