Le app chiuse (non in esecuzione) possono accedere all'aggiornamento dell'app in background?

1

Le app chiuse (ad esempio non in esecuzione o sospese) possono accedere all'aggiornamento dell'app in background o modificare lo stato del programma per accedere all'aggiornamento dell'app in background? Al contrario, se l'aggiornamento dell'app in background è disattivato, le app possono accedere solo ai dati in primo piano?

Esempio 1: le app di chat continuano a ricevere notifiche se si trovano nello stato del programma "non in esecuzione". Come fanno questo?

Esempio 2: Se sto salvando una nota (con l'aggiornamento dell'applicazione in background disattivata) e torno alla schermata iniziale prima che la nota finisca di salvare, continuerà a salvare?

Dai documenti iOS, il ciclo di vita dell'app è illustrato di seguito.

Guida per gli sviluppatori iOS: il ciclo di vita delle app

    
posta y3sh 13.10.2016 - 16:45
fonte

1 risposta

2

Non confondere Sospeso con Non in esecuzione. Sospeso significa che l'app è ancora in memoria ma che altrimenti non utilizza alcuna risorsa. Non in esecuzione significa che l'app non è affatto in memoria a causa della chiusura involontaria, perché il sistema richiede risorse per un'app in primo piano o perché l'utente ha chiuso forzatamente l'app.

Aggiornamento app in background (BAR) = /="Sfondo" come mostrato in questo diagramma:

  • BAR consente alle app di aggiornare i contenuti su base molto limitata, su una pianificazione impostata e imposta da iOS, generalmente circa una volta al giorno.

  • Lo stato di sfondo mostrato in tale diagramma è Esecuzione in background, che consente alle app di completare determinate attività in background. La disabilitazione della BAR non ha alcun effetto sulle app che possono utilizzare l'esecuzione in background.

L'esecuzione in background è generalmente consentita solo se un'app non è stata forzata dall'utente (ad eccezione delle "app di localizzazione"). Le app in qualsiasi stato, incluso terminato, possono utilizzare l'esecuzione in background se soddisfano i seguenti requisiti. Se necessario, saranno rilanciati dal sistema in sottofondo (di nuovo, soggetti alle limitazioni forzate per uscire). Vedi la mia risposta su una domanda simile :

  • 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

There is one other case, which is downloading in the background. This is a special case, though, because the app itself is still suspended and the download process is handed off to the system, in case the app has to be terminated by the system to reclaim resources.

Ciò che non è nella risposta collegata sono le notifiche. Le notifiche non locali sono generate su un server da qualche parte e inviate al dispositivo tramite Apple Push Notifications (APN). L'atto di ricevere una notifica non indica che l'app stessa abbia fatto qualcosa.

Nell'esempio della nota, quando l'app della nota passa allo sfondo, viene data una breve quantità di tempo per salvare lo stato. Se è in procinto di fare qualcosa come salvare una nota e non può completarla nel tempo consentito, può chiedere un'estensione, in sostanza, e quindi avvisare il sistema quando è fatto in modo che l'app possa essere sospesa. Questo tipo di lavoro in background può essere utilizzato da qualsiasi app, non solo quelle che rientrano nelle categorie sopra elencate.

    
risposta data 13.10.2016 - 19:26
fonte

Leggi altre domande sui tag