Jak (i ​​dlaczego) aplikacje iOS 6 innych firm komunikują się ze swoimi twórcami, gdy nie są aktywną aplikacją?

3

Zauważyłem z moich dzienników DNS, że domeny powiązane z niewielką liczbą aplikacji innych firm są dostępne co około pół godziny lub co godzinę, nawet jeśli odpowiednia aplikacja nie jest aktywna, a nawet gdy telefon jest zablokowany.

W przeszłości rozumiałem, że aplikacje firm trzecich nie działają, chyba że są aktywną aplikacją, a wszystkie powiadomienia pochodzą ze scentralizowanej usługi Apple. Jakiego mechanizmu używa się w celu umożliwienia tej komunikacji i jakie są powody, dla których te aplikacje muszą dzwonić do domu tak często, gdy nie ma aktywności aplikacji?

pseudon
źródło
Dzięki. Nie przypominam sobie, że zostałem poproszony o uruchomienie dźwięku w tle. Ponadto niekoniecznie jest to trwałe połączenie, tylko sporadyczne. Przyszło mi do głowy, że mogą wystąpić pewne wywołania zwrotne ze zdarzeń powiadomień, ale musiałyby być cichymi powiadomieniami, ponieważ żaden nie pojawia się, gdy tak się dzieje. Mechanizm (i powód) dla tych żądań DNS jest tajemnicą.
pseudon
Ponieważ iOS 7 umożliwia teraz odświeżanie aplikacji w tle, w tym możliwość jej wyłączenia i wyłączenia wydaje się aby zapobiec zachowaniu występującemu w iOS 6 (sądząc po moich dziennikach DNS), myślę, że to pytanie można zamknąć.
pseudon
W końcu widzę to samo zachowanie w systemie iOS 7, nawet po całkowitym zamknięciu aplikacji i wyłączeniu wszystkich odświeżeń aplikacji w tle. Możliwe, że system operacyjny wstępnie buforuje żądania DNS dla ostatnio używanych, ale nieaktywnych aplikacji, ale nie znalazłem żadnej wiarygodnej odpowiedzi.
pseudon

Odpowiedzi:

1

Apple dokumentuje wysoką funkcjonalność w artykule dotyczącym procesów w tle:

Możesz zajrzeć do archive.org, aby zobaczyć wersję tego systemu dla iOS 6, ale prawie wszystko z iOS 7 ma zastosowanie w iOS 6, z wyjątkiem nowej funkcjonalności „odświeżania aplikacji w tle”.

Jeśli chciałbyś głębiej zrozumieć, jak działa wielozadaniowość, zacznę od tej części dokumentacji programisty:

Bez przechwytywania ruchu APNS (lub przy użyciu Instruments do śledzenia systemu operacyjnego podczas jego uruchamiania) trudno stwierdzić, czy 30-minutowy dostęp jest wynikiem Lokalne powiadomienia a może powiadomienia push wysyłane ze strony serwera, powodujące okresowe budzenie aplikacji. Mam nadzieję, że to wystarczy, aby zacząć śledzić rzeczy.

bmike
źródło
Być może coś przeoczyłem w dokumencie wsparcia Apple, ale wydaje się, że to nie dotyczy mojego pytania. Archive.org miał wersję iOS 6, która była prawie identyczna, z wyjątkiem odświeżania aplikacji w tle. Jako dokument skierowany do użytkownika nie spodziewałbym się jednak, że będzie wyczerpujący.
pseudon
Widzę twoje zmiany. Przed wysłaniem pytania przyjrzałem się dokumentom dewelopera i nadal nie widziałem, jak to działa poprzez powiadomienia bez jakiegoś słyszalnego lub widocznego wskazania w telefonie. W systemie iOS 6 działo się coś, co nie zostało udokumentowane i nadal jest tajemnicą. Na szczęście iOS 7 wydaje się mieć sposób na zatrzymanie tego zachowania.
pseudon