Le app non funzionano correttamente in background

1

Ho un iPhone 5C con iOS 10 e ho diverse app che dovrebbero fare cose in background - in particolare sto pensando a Google Foto, IFTTT e Android Wear, anche se potrebbero essercene di più non ho ancora notato - come FB Messenger, Allo, Duo, Skype, Life360, Hiya, ecc ...

Ad esempio, Google Photos dovrebbe eseguire automaticamente il backup delle mie foto della fotocamera, IFTTT dovrebbe eseguire azioni su tutti i promemoria e screenshot appena creati e Android Wear dovrebbe connettersi al mio orologio LG.

Sul mio vecchio telefono Android, si limitavano a fare la cosa se l'app era in esecuzione o meno. Su iPhone, a quanto pare devi aprire le app e lasciarle in esecuzione in background perché si comportino correttamente.

Tuttavia, per ciascuno dei tre che ho elencato, sembrano funzionare come previsto solo per un tempo limitato (non so quanto tempo), prima che smettano di funzionare. Ad esempio, aggiungo un promemoria, scatta una foto o faccio uno screenshot e le azioni non avvengono, anche se IFTTT e Google Foto mostrano che sono in esecuzione se sfoglia le app aperte.

Seleziono l'app IFTTT o Google Foto il giorno seguente dall'elenco delle app aperte e immediatamente le azioni iniziano. Lo stesso vale per il mio orologio: funzionerà per circa mezz'ora, quindi improvvisamente rifiuterà di connettersi fino a quando non passerò all'app Android Wear sul telefono, quindi si connetterà immediatamente.

L'aggiornamento app in background è abilitato su tutte queste app.

Questa domanda sembra indicare che queste app dovrebbero lavoro. Se non fossero app popolari, darei la colpa alle app stesse, ma dubito che Google e IFTTT lascino un grosso buco nei loro prodotti.

C'è un'altra impostazione che devo guardare? C'è forse un limite di CPU o di memoria che blocca queste app che verranno risolte con un nuovo telefono più potente?

    
posta Joe Enos 04.10.2016 - 19:33
fonte

1 risposta

4

Le app mostrate come "aperte" ma che non sono l'app in primo piano sono nello stato Sospeso (descritto di seguito), con un paio di eccezioni. Pertanto, le app che stai vedendo nello switcher dell'app in genere non fanno nulla.

A livello generale, questi sono gli stati in cui un'app può essere installata su iOS.

Not running: The app has not been launched or was running but was terminated by the system.

Inactive: The app is running in the foreground but is currently not receiving events. (It may be executing other code though.) An app usually stays in this state only briefly as it transitions to a different state.

Active: The app is running in the foreground and is receiving events. This is the normal mode for foreground apps.

Background: The app is in the background and executing code. Most apps enter this state briefly on their way to being suspended. However, an app that requests extra execution time may remain in this state for a period of time. In addition, an app being launched directly into the background enters this state instead of the inactive state. For information about how to execute code while in the background, see Background Execution.

Suspended: The app is in the background but is not executing code. The system moves apps to this state automatically and does not notify them before doing so. While suspended, an app remains in memory but does not execute any code. When a low-memory condition occurs, the system may purge suspended apps without notice to make more space for the foreground app.

L'esecuzione in background è possibile, come indicato sopra, ma solo per casi d'uso specifici:

  • Apps that play audible content to the user while in the background, such as a music player app
  • Apps that record audio content while in the background
  • Apps that keep users informed of their location at all times, such as a navigation app
  • Apps that support Voice over Internet Protocol (VoIP)
  • Apps that need to download and process new content regularly
  • Apps that receive regular updates from external accessories

C'è un altro caso, che viene scaricato in background. Questo è un caso particolare, però, perché l'app stessa è ancora sospesa e il processo di download viene trasferito al sistema, nel caso in cui l'app debba essere terminata dal sistema per recuperare le risorse.

In particolare con Google Foto, l'applicazione dovrebbe essere nello stato Attivo, ovvero telefono sbloccato e in primo piano, per trovare tutte le foto che devono essere caricate. (Dopo averne una lista, potrebbe essere in grado di passare i caricamenti effettivi al sistema per l'esecuzione in background, ma non so se è così che funziona.)

Per IFTTT, è probabile che sia in primo piano per eseguire ricette che si basano su elementi specifici di iOS (ad esempio Promemoria). Potrebbe qualificarsi per l'esecuzione in background in "App che tengono gli utenti sempre informati della loro posizione", ma forse no (anche se ha trigger basati sulla posizione).

L'app Android Wear dovrebbe essere idonea in "App che ricevono aggiornamenti regolari" per l'esecuzione in background. Dal momento che funziona un po 'di tempo, sembra essere impostato per farlo. Nel caso di quell'app, direi che verrà interrotta dal sistema per recuperare le risorse.

Un dispositivo più nuovo con più risorse non danneggerebbe sicuramente la situazione (soprattutto per Android Wear, scommetto), ma parte di questo è dovuto al modo in cui iOS opera per conservare le risorse di sistema (e di conseguenza, la durata della batteria) .

    
risposta data 04.10.2016 - 20:24
fonte

Leggi altre domande sui tag