while(1)
バックグラウンドでいくつかのサービスを実行しようとしていたので、バックグラウンド デリゲートでしばらくの間ループを使用して、バックグラウンドでコントロールを攻撃しました。エミュレーターでは正常に動作していますが、iPad に転送すると、バックグラウンドに入った後にアプリがクラッシュします。
while(1)
デバイスでループが機能しませんか?
while(1)
バックグラウンドでいくつかのサービスを実行しようとしていたので、バックグラウンド デリゲートでしばらくの間ループを使用して、バックグラウンドでコントロールを攻撃しました。エミュレーターでは正常に動作していますが、iPad に転送すると、バックグラウンドに入った後にアプリがクラッシュします。
while(1)
デバイスでループが機能しませんか?
エミュレーターでは正常に動作していますが、iPad デバイスに転送すると、バックグラウンドに入った後にアプリがクラッシュします。
あなたが書いていることを正しく解釈すると、アプリが「バックグラウンドである」ときにアプリでスレッドを実行することが、いくつかの予備的なケースを除いて許可されていないという理由だけで、iOS デバイスでアプリが強制終了されると思います。 」 (つまり、ユーザーがホームボタンをクリックして「終了」した後)。
したがって、何が起こっているのかを読んでいるのが正しければ、アプリが特定のクラスのアプリに属しているか (後述)、実行できる唯一のことは、限られた時間だけバックグラウンド スレッドを「登録」することです。アプリがバックグラウンドになった後。
バックグラウンド実行とマルチタスクからの抜粋
ほとんどのアプリは、バックグラウンドに入った直後に一時停止状態に移行します。ユーザーに重要なサービスを提供するアプリのみが、任意の時間実行し続けることが許可されます。
可能な限り、バックグラウンドでの実行を避け、アプリを一時停止することをお勧めします。バックグラウンド タスクを実行する必要がある場合は、それが適切な場合のガイドラインを次に示します。
いくつかの特定のユーザー サービスの少なくとも 1 つを実装する必要があります。
単一の有限長タスクを実行する必要があります。
「長時間実行されるバックグラウンド タスクの実装」に特に興味があるかもしれません。
実装するのにより多くの実行時間を必要とするタスクについては、特定のアクセス許可を要求して、一時停止せずにバックグラウンドで実行する必要があります。iOS では、特定の種類のアプリのみがバックグラウンドで実行できます。
音楽プレーヤー アプリなど、バックグラウンドでユーザーに可聴コンテンツを再生するアプリ
ナビゲーション アプリなど、常にユーザーに現在地を知らせるアプリ
Voice over Internet Protocol (VoIP) をサポートするアプリ
新しいコンテンツをダウンロードして処理する必要がある Newsstand アプリ
外部アクセサリから定期的にアップデートを受信するアプリ