Appleは、アプリをバックグラウンドで実行する方法とタイミングについて非常に厳しいガイドラインを定めています。
以下は、サードパーティのiOSアプリがバックグラウンドでCPUを使用できる唯一のシナリオです。
バックグラウンドフェッチ
どのアプリでも、「バックグラウンドフェッチ」(バックグラウンドアプリの更新)を使用して、コンテンツをバックグラウンドで数秒間、1日に1回(iOSで制御されている時間枠で、開発者の制御外で)フェッチできます。バックグラウンドフェッチはバッテリーとCPUをほとんど消費せず、主にニュース/天気/ソーシャルメディア/メールアプリでフィードを更新して、アプリを開いたときに完全に古くならないようにするために使用されます。
オーディオ、Voice over IP、Bluetooth通信
アプリがバックグラウンドでオーディオを再生する場合(AirPlayまたは電話のスピーカーを介して)、iOSは音楽の再生を停止するまでバックグラウンドでの実行を許可します。アプリがバックグラウンドでデータベースの電話(WhatsappやSkype通話など)を行うことを許可している場合、通話中はCPUを使用してアクティブな状態を維持できます。アプリがBluetoothアクセサリと通信する場合(PebbleアプリがPebble Smartwatchと通信する場合など)、アプリはバックグラウンドで永続的に起動したままになることがあります。
ニューススタンドのダウンロード、リモート通知
ニューススタンドアプリ(主要なニュース組織であることがAppleによって承認され、App Storeのニューススタンド部分に表示される限り)は、バックグラウンドで新しいコンテンツをダウンロードすることが許可されます。アプリの外で生成された通知(ニュース速報など)を表示する必要があるアプリ(ニューヨークタイムズアプリなど)は、バックグラウンドで起動したままにして、そのような「リモート」通知を受け取ることができます。
場所の更新
アプリが「常に」現在地を使用することを許可する場合(つまり、バックグラウンドで)、バックグラウンドでいつでもアクティブにすることができます。Facebook、Find Friendsなどのアプリは、これを使用して位置関連の情報を更新しますが、他のアプリはこれを使用して、バックグラウンドでタスクを実行するためにそれを不正に使用することができます(ただし、特に位置情報へのアクセスをユーザーに許可した場合のみ)。
非常に一般的な誤解は、それを殺すためにアプリの「スワイプすると、」バックグラウンドで動作してからそれを停止することである:これは完全に真実ではありません。上記の7つの理由のいずれかがバックグラウンドで動作するアプリは、「スワイプ」に関係なくバックグラウンドで動作できます。これらの7つの理由のいずれかがないアプリは、そうでない場合は動作できません。あなたがそれらを殺さなくても、画面上で。
もう1つの誤解(ご存知のようです!)は、「バックグラウンドアプリの更新」をオフにすると、アプリがバックグラウンドで動作しなくなることです。実際、これはアプリがバックグラウンドフェッチを使用できないようにするだけですが、バックグラウンドアプリの更新の切り替えに関係なく、他の6つの理由の1つでもある場合は、バックグラウンドで動作できます。
インストールしたアプリは、CPU、メモリ、バッテリー、またはデータをバックグラウンドで使用していますか?簡単に見つけられます!Settings
iPhoneでにアクセスし、Battery
セクションを見つけて確認してください。アプリの名前の下に「バックグラウンドアクティビティ」と表示されている場合、そのアプリはバックグラウンドでCPUを使用しています。それ以外の場合は、バックグラウンドで何も実行されていません。
スクリーンショットの例を次に示します。
このiPhoneでは、Podcastはバックグラウンドで動作していますが、他のアプリでは動作していません。バッテリー設定に入ると、Angry Birdsがバックグラウンドで実行されているかどうかを簡単に確認できます。
したがって、質問に直接回答するには:
iPhoneが再起動すると、これらすべてのアプリも起動して、貴重なプロセッサ時間とシステムリソースを消費する可能性がありますか?
バックグラウンドで動作するように特別に構成されている場合にのみ、iPhoneのバッテリー設定で動作しているかどうかを確認できます。
アプリを起動し、ホームボタンを明示的にダブルタップしてから、アプリをスライドアウト(終了する場合)するとどうなりますか。それまたはその一部は、現在または後でバックグラウンドで実行できますか?
はい。たとえば、Facebookが(それと同じように)位置情報サービスを使用している場合、上にスワイプしてFacebookアプリを強制終了しても、バックグラウンドでの位置情報の使用が停止されることはありません。背景も。
WhatsApp、WeChat、Line、Facebookメッセージはすべて新しいメッセージを通知してくれるので、iPhoneを再起動するとすぐに実行されるようです。CPUをバックグラウンドで使用していますか?また、設定でアプリの更新をオフにしても、アプリがバックグラウンドで実行される可能性があります。本当?
Whatsapp、WeChat、Line、ハングアウト、FB Messenger、その他のチャットアプリは、時々remote notifications
バックグラウンドで新しいメッセージをチェックする機能を使用します。これは予想される動作であり(また、[バッテリーの設定]で、アプリごとのバッテリー使用量を確認することで、ユーザーが実行している量を確認できます)、バッテリーの消耗が多すぎないはずです。そして実際、アプリはバックグラウンドフェッチではなくリモート通知を使用してバックグラウンドで動作するため、これらのアプリのアプリの更新をオフにしても効果はありません。
TL; DR:アプリはバックグラウンドで携帯電話のリソースを使用できます。アプリがどの程度実行しているかを確認できますSettings
-> Battery
。
情報源: