2

iOS のガイドラインでは、バックグラウンド タスクを10 分以上使用することは許可されていないようです。ユーザーが特定の時間を設定してカウントダウンを開始できるようにする調理タイマーアプリを設計しています。

ただし、10 分以上実行されるバックグラウンド タスク ( UILocalNotificationの使用や[NSRunLoop mainRunLoop]へのNSTimerの追加など) を設定することは不可能のようです。

これを回避する方法はありますか? 開発者は、10 分以上続くタイマーをトリガーするアプリをどのように設計しますか?

可能な解決策:

  • A: サーバー サービスを使用してタイマーをリモートで実行し、タイマーが終了したらサーバーから通知をプッシュして、ユーザーに「警告」します。短所:サーバーの実行に費用がかかり、開発に時間がかかります。
  • B: アプリが起動したら、フォアグラウンドでアクティブなままにします (スクリーンセーバーのトリガーを許可しないでください)。短所:バッテリーが高価です。

他のアイデアはありますか?

編集: アプリが iWatch で動作することを望みます。したがって、タイマーがトリガーされると、iWatch に一目で通知が表示されます。これはiPhoneアプリによってガイドされるため、アプリがアクティブでない限り、そうすることができません.

4

1 に答える 1

3

のドキュメントにUILocalNotificationは次のように書かれています:

UILocalNotificationオブジェクトは、アプリが特定の日時に表示するようにスケジュールできる通知を指定します。オペレーティング システムは、スケジュールされた時間にローカル通知を配信する責任があります。これが発生するためにアプリが実行されている必要はありません。

したがって、アプリをバックグラウンドで数分以内に実行するというこの制限は、通知には適用されません (アプリが実行されている必要はないため)。

詳細については、『Local and Remote Notification Programming Guide』を参照してください。

于 2015-01-06T12:41:57.517 に答える