2017-01-01 6 views
1

私は時間をかけて実行し、一定の間隔でサウンドを再生するはずのタイマーアプリを持っています。画面をオフにして(バッテリーを節約するため)、またはibooksのような別のアプリを開いているときに、この作業を行うにはどうすればよいですか?現在、私はViewDidLoadでタイマー機能を実行しています。多分それが問題です。ここで正しいアプローチは何でしょうか?画面がオフのときにタイマーアプリが動作するios

+0

おそらくローカル通知をスケジュールする – luk2302

答えて

2

UNNotificationRequestを使用してユーザー通知要求をスケジュールします。必要に応じて、UNCalendarNotificationTriggerまたはUNTimeIntervalNotificationTriggerオブジェクトをトリガーとして指定します。

iOS 9以下のサポートが必要な場合は、類似のUILocalNotification APIがiOS 10では廃止されましたが、下位互換性が必要な場合に使用できます。

通知が発生すると、クライアント側のみであり、アプリケーションはタスクを実行するために起動しません。ユーザーが通知のアクティブ化を選択した場合にのみ、アプリは実行中のコンテキストを取得しますか。

+0

お返事ありがとうございます。問題は、アプリがバックグラウンドに入ったり、スリープモードになったりすると、フリーズすることです。私のアプリはそうではないことを要求します。私はいくつかのスポーツタイマーと実行中のアプリをチェックアウトし、他のアプリが同時に動くときはフリーズしません。 –

+0

アプリはバックグラウンドのときにスリープ状態になります。しかし、あなたはスリープ状態になる時間を節約することができます。そして、あなたのアプリがスリープ状態になった時間と現在の時間との間の経過時間を計算して、タイマーを再起動します。 'NSDate'を使うこともできますし、精度が必要な場合は、マッハ時間を使うことができます。 –

+0

オーディオバックグラウンドモードの機能を調査しましたか? – Gruntcakes

関連する問題