Les applications iOS s'exécutent-elles en arrière-plan?

15

Disons que si j'installe une douzaine de jeux et utilitaires sur l'iPhone, puis que j'installe également des applications de chat comme WhatsApp, WeChat, Line, puis

  1. Lorsque l'iPhone redémarre, toutes ces applications peuvent-elles également démarrer et prendre un temps processeur précieux et des ressources système?

  2. Que se passe-t-il si je démarre une application, puis tapote deux fois explicitement sur le bouton Accueil, puis fait glisser l'application (pour la quitter). Est-il possible, en tout ou en partie, de fonctionner en arrière-plan maintenant ou plus tard?

  3. Étant donné que les messages WhatsApp, WeChat, Line et Facebook m'informent tous des nouveaux messages, il semble qu'ils s'exécuteront dès que je redémarrerai mon iPhone. Utilisent-ils mon processeur en arrière-plan? En outre, il semble que même si je désactive l'actualisation des applications dans les paramètres, les applications peuvent toujours fonctionner en arrière-plan . Est-ce vrai?

Une grande préoccupation est que si j'installe toutes les variantes d'Angry Birds, quelques jeux de roulette de casino et toutes les versions de Cut the Rope et ne prends pas la peine de les supprimer (le téléphone a 128 Go de stockage). Ensuite, toutes ces applications fonctionneront-elles éventuellement au moment du redémarrage de l'iPhone ou simplement au hasard et prendront-elles le temps du processeur et les ressources système (telles que la RAM)?

non-polarité
la source
1
J'ai publié un très long guide sur tout ce qu'il y a à savoir ici, j'espère que cela vous aidera vraiment!
owlswipe
Ma réponse a-t-elle aidé? Veuillez l'accepter ou me dire ce qui ne va pas pour que je puisse l'améliorer! :)
owlswipe

Réponses:

29

Apple a des directives très strictes sur la façon dont et quand les applications peuvent s'exécuter en arrière-plan.

Voici les seuls scénarios dans lesquels une application iOS tierce peut utiliser le processeur en arrière-plan.

Récupération en arrière-plan

N'importe quelle application peut utiliser "Background Fetch" (alias Background app refresh) pour récupérer le contenu en arrière-plan pendant quelques secondes, environ une fois par jour (sur une période réglementée par iOS, hors du contrôle du développeur). La récupération en arrière-plan prend très peu de batterie et de processeur, et est principalement utilisée par les applications d'actualités / météo / médias sociaux / messagerie pour mettre à jour votre flux afin que lorsque vous ouvrez l'application, il ne soit pas complètement obsolète.

Audio, voix sur IP, communications Bluetooth

Si une application lit le son en arrière-plan (via AirPlay ou via les haut-parleurs du téléphone), iOS lui permet de fonctionner en arrière-plan jusqu'à ce qu'il cesse de lire la musique; si une application vous permet de passer des appels téléphoniques basés sur des données (comme les appels Whatsapp ou Skype) en arrière-plan, elle peut rester active, en utilisant le processeur pendant la durée de l'appel; et si une application communique avec les accessoires Bluetooth (comme l'application Pebble communiquant avec la montre intelligente Pebble), elle peut rester éveillée en permanence en arrière-plan.

Téléchargements de kiosque à journaux, notifications à distance

Les applications de kiosque à journaux (tant qu'elles sont approuvées par Apple pour être une grande organisation de presse et apparaissent dans la partie Kiosque de l'App Store) sont autorisées à télécharger du nouveau contenu en arrière-plan; toute application (comme l'application The New York Times) qui a besoin d'afficher des notifications générées en dehors de l'application (par exemple, les notifications d'actualités), peut rester éveillée en arrière-plan pour recevoir de telles notifications "à distance".

Mises à jour de l'emplacement

Si vous autorisez une application à utiliser "toujours" votre position (c'est-à-dire en arrière-plan), elle peut être active à tout moment en arrière-plan. Des applications comme Facebook, Find Friends et d'autres utilisent cela pour mettre à jour les informations liées à la localisation, bien que d'autres applications puissent l'utiliser pour l'utiliser subrepticement pour effectuer des tâches en arrière-plan (mais uniquement si vous leur permettez spécifiquement d'accéder à votre position).


Une idée fausse très courante est que «balayer» une application pour la tuer l'empêche de fonctionner en arrière-plan: c'est tout à fait faux. Les applications qui ont l'une des sept raisons ci-dessus pour fonctionner en arrière-plan peuvent fonctionner en arrière-plan, que vous les "glissiez" dessus, et les applications qui n'ont pas l'une de ces sept raisons ne peuvent pas fonctionner lorsqu'elles ne le sont pas sur l'écran même si vous ne les tuez pas.

Une autre idée fausse (que vous semblez avoir!) Est que la désactivation de "Background App Refresh" arrêtera une application de fonctionner en arrière-plan; en fait, cela ne désactive qu'une application d'utiliser la récupération en arrière-plan, mais elle peut fonctionner en arrière-plan si elle a également l'une des six autres raisons indépendamment de la bascule d'actualisation de l'application en arrière-plan.


Les applications que vous avez installées utilisent-elles le processeur, la mémoire, la batterie ou les données en arrière-plan? Vous pouvez facilement le découvrir! Accédez à Settingssur votre iPhone, recherchez la Batterysection et jetez un œil. Si une application affiche «Activité en arrière-plan» sous son nom, elle utilise alors le processeur en arrière-plan; sinon, il n'a rien fait en arrière-plan.

Voici un exemple de capture d'écran:

entrez la description de l'image ici

Sur cet iPhone, Podcasts fonctionnait en arrière-plan, mais aucune des autres applications ne l'a fait. Entrer dans les paramètres de la batterie est un moyen simple de savoir si Angry Birds a été exécuté en arrière-plan.


Donc, pour répondre directement à vos questions:

Lorsque l'iPhone redémarre, toutes ces applications peuvent-elles également démarrer et prendre un temps processeur précieux et des ressources système?

Seulement s'ils sont spécifiquement configurés pour fonctionner en arrière-plan, vous pouvez vérifier s'ils l'ont fait dans les paramètres de la batterie de votre iPhone.

Que se passe-t-il si je démarre une application, puis tapote deux fois explicitement sur le bouton Accueil, puis fait glisser l'application (pour la quitter). Est-il possible, en tout ou en partie, de fonctionner en arrière-plan maintenant ou plus tard?

Oui. Par exemple, si Facebook utilise des services de localisation (comme il le fait), alors balayer pour tuer l'application Facebook ne l'empêchera pas d'utiliser votre position en arrière-plan, et pendant qu'il utilise votre position, il peut effectuer à peu près n'importe quelle autre tâche dans l'arrière-plan aussi.

Étant donné que les messages WhatsApp, WeChat, Line et Facebook m'informent tous des nouveaux messages, il semble qu'ils s'exécuteront dès que je redémarrerai mon iPhone. Utilisez-vous mon processeur en arrière-plan? En outre, il semble que même si je désactive l'actualisation des applications dans les paramètres, les applications peuvent toujours fonctionner en arrière-plan. Est-ce vrai?

Whatsapp, WeChat, Line, Hangouts, FB Messenger et d'autres applications de chat utilisent la remote notificationscapacité de vérifier les nouveaux messages en arrière-plan de temps en temps. C'est un comportement attendu (et vous pouvez vérifier combien ils le font en vérifiant leur utilisation de la batterie application par application, encore une fois dans les paramètres de la batterie), et ne devrait pas trop vider votre batterie. Et en effet, la désactivation de l'actualisation des applications pour ces applications n'aura aucun effet, car les applications utilisent des notifications à distance et non une récupération en arrière-plan pour fonctionner en arrière-plan.


TL; DR: les applications peuvent utiliser les ressources de votre téléphone en arrière-plan, vous pouvez voir ce qu'elles font dans Settings-> Battery.


Sources d'information:

chouette
la source
2
c'est assez bon ... pouvez-vous citer une référence / source à ce sujet?
polarité
2
@ 太極 者 無極 而 生 Toutes les informations proviennent de mes connaissances personnelles en tant que développeur iOS, mais j'ai également ajouté quelques sources au bas de ma réponse.
owlswipe
1
Excellente réponse. En tant qu'élément trivial, Apple a désactivé les notifications à distance pour les applications fermées de force dans iOS 7. Mais puisque les personnes qui ont éjecté de manière compulsive toutes leurs applications se sont plaintes de ne pas recevoir de notifications, qui ont été réintégrées dans iOS 7.1 ou 7.2.
2
@Phong j'aime ça, je ne savais pas ça! Merci: D.
owlswipe
3
Vous avez tort que l'arrêt forcé ne soit pas lié au fait que les applications puissent utiliser l'exécution en arrière-plan. Apple sur BE : "[iOS] ne relance pas les applications après ... forcer la fermeture de l'utilisateur. Une exception est les applications de localisation ... dans iOS 8 et versions ultérieures ... [Sinon] l'utilisateur doit le lancer explicitement ou redémarrer ... avant que l'application [ne soit] lancée automatiquement en arrière-plan par [iOS]. "
tubedogg