iOS zawsze „resetuje” moje aplikacje po pewnym czasie, gdy są zminimalizowane. Jak mogę to zmienić?


9

Przykład: gram w grę i zatrzymuję się na minutę, aby wysłać wiadomość na WhatsApp. Zablokuj telefon na kilka minut, a gdy poruszam się po „zamrożonych” aplikacjach i wybieram grę (gra nadal ma ostatni ekran, który miał, gdy był zminimalizowany), otwiera się z ekranu powitalnego, zresetowanego!

I nie dzieje się tak tylko w przypadku gier. Nawet Facebook, Twitter i inne aplikacje.

Odpowiedzi:


18

Nie możesz tego zmienić, tylko twórca aplikacji może (dodając kod do obsługi rozładowywania aplikacji i zachowania stanu). Niestety większość gier nie.


14

W rzeczywistości jest to powszechne nieporozumienie w systemie iOS.

Aplikacje nie są „zminimalizowane”: są zawieszony gdy są w tle (z wyjątkiem niektórych przypadków, zwłaszcza aplikacji nawigacyjnych i muzycznych). Co więcej, zasada opodatkowania zawieszonych aplikacji (takich jak gry) jest często całkowicie zamknięta wkrótce po zawieszeniu, aby system iOS mógł odzyskać dużą ilość pamięci, którą te aplikacje często rezerwują.

Odpowiedź na ten problem, jak wspomniała @nohillside, polega na tym, że deweloper musi wdrożyć funkcjonalność, aby zapisać stan gry, gdy zostanie ona zawieszona, a następnie przywrócić stan zawieszenia, gdy aplikacja ponownie się budzi.

Może to być trudne dla wielu aplikacji, ale przede wszystkim dla gier. Tak wiele gier po prostu tego nie robi.

Nie można nic zrobić jako użytkownik, aby zmienić tę funkcjonalność, ponieważ ograniczenia te są wymuszane na grze przez system operacyjny iOS telefonu, który z kolei jest ograniczony przez sprzęt telefoniczny.


0

Z mojego doświadczenia wynika, że ​​były dwa przypadki, w których aplikacje nie działają (innymi słowy, wyświetlają ekran powitalny po ponownym uruchomieniu).

Po pierwsze, deweloper źle, a nawet nie wdrożył zawieszania aplikacji. Było kilka aplikacji, które zawsze kończą się po naciśnięciu przycisku home lub resetują się, gdy były w określonej funkcji. (Chociaż w ostatnim sklepie z aplikacjami nie widziałem żadnego z wyjątkiem niektórych aplikacji instytucji publicznych, które mają średnią ocenę 1 ~ 2)

Drugi to ograniczenie sprzętowe - mimo że deweloper prawidłowo zaimplementował funkcję zawieszenia, iOS czasami decyduje się na jego zamknięcie z różnych powodów z powodu braku pamięci (jest to główny powód, dla którego wcześniejsze urządzenia nie wspierały zawieszenia aplikacji w erze 3G / S) ), zarządzanie czasem baterii.

Po pierwsze, możesz napisać recenzję na Appstore - jest to jeden z najbardziej wpływowych powodów rozwoju aplikacji.

Po drugie, jest to dość głupie rozwiązanie, ale można kupić nowy sprzęt z większą ilością pamięci RAM, a to zmniejszy możliwość wstrzymania wstrzymania aplikacji z systemu iOS (i skrócić czas ponownego uruchamiania aplikacji). Jeśli nie chcesz tego robić, możesz nakazać systemowi iOS wstrzymanie niektórych nieistotnych aplikacji, przesuwając podgląd aplikacji w górę w widoku wielozadaniowości, co może zmniejszyć prawdopodobieństwo, że aplikacje, z których korzystasz, zostaną zabite przez iOS.


Nie wiem, dlaczego ta odpowiedź ma wartość -1, ponieważ sugeruje rzeczywiste rozwiązanie problemu i opisuje ją również.
redbeam_

Nie wiem, jak dodać dodatkowe odniesienia, ponieważ większość rozumowania odpowiedzi opiera się na moim osobistym doświadczeniu. Część 3GS pochodzi z mojego jailbroken iOS Touch 2G 8 GB iOS 3.x, gdzie próbowałem uruchomić aplikację przez jailbreak, może ona obsługiwać tylko 2 ~ 3 aplikacje w tle z powodu małej pamięci RAM (nie pamiętam dokładnej liczby, ale mniej ponad 100 MB dostępnej pamięci RAM na tę aplikację). Część recenzji Appstore pochodzi z mojego doświadczenia zawodowego od firmy startowej (i wielu odpowiedzi programistów z popularnej aplikacji, gdzie przeprasza za negatywną recenzję). Drugie rozwiązanie pochodzi z niemal każdej społeczności Apple.
ik1ne
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.