W Ice Cream Sandwich (ICS) system operacyjny kategoryzuje Twoją aplikację, a każda kategoria ma własny próg, w którym system operacyjny określa, która aplikacja ma zostać zamknięta jako pierwsza, gdy zabraknie pamięci.
Czy ktoś z was był zirytowany, powiedzmy, że otworzyłeś stoper, aby uruchomić w tle, aby zmierzyć czas, który upłynął, a następnie otworzyłeś kilka innych aplikacji i wróciłeś do timera, aby zobaczyć, czy został zresetowany lub zamknięty? Mówię poważnie, to jest naprawdę bardzo irytujące.
Czy istnieje sposób, aby zmusić aplikację do działania w tle bez względu na wszystko, nawet jeśli w systemie operacyjnym zabraknie pamięci?
4.0-ice-cream-sandwich
ram
samsung-galaxy-s-3
supertonsky
źródło
źródło
Odpowiedzi:
Przyjęta odpowiedź okazała się niepoprawna lub nieaktualna. Moduł „Ustawienia aplikacji” dla aplikacji Xposed pozwala określić, dla poszczególnych aplikacji, aby aplikacje nie były zabijane lub uwalniane:
http://repo.xposed.info/module/de.robv.android.xposed.installer
http://repo.xposed.info/module/de.robv.android.xposed.mods.appsettings
Oczywiście należy zachować odpowiedzialną ostrożność, grając z aplikacjami zmieniającymi tak niski poziom zachowania.
źródło
Prosta odpowiedź: nie. Android zawsze używa OOM (brak pamięci), nadając priorytet zwolnieniu nieużywanej pamięci. Możesz zmienić priorytety aplikacji (przynajmniej do ponownego uruchomienia) za pomocą niektórych menedżerów zadań, ale nawet wtedy, gdy kończy się pamięć, aplikacje w tle zaczynają ginąć.
Pomyśl o tym scenariuszu: pobrałeś źle zakodowaną aplikację, która uruchamia się podczas rozruchu, powoduje przepełnienie bufora i zapycha całą pamięć. Zwykle ta aplikacja jest zabijana, ale jeśli jest ustawiona na otwarcie, skutecznie blokuje telefon do ponownego uruchomienia, a potem zaczyna się od nowa, itd. Itp.
Niektóre liczniki używają usług o wysokich priorytetach, aby uniknąć tego problemu, ale jeśli uruchomisz wystarczającą liczbę wysokowydajnych aplikacji zajmujących zasoby, gdy licznik czasu jest w tle, w końcu zostanie zabity.
źródło
Integer.MAX_VALUE
czasów. Jak myślisz, dlaczego to i tak jest ograniczoneInteger.MAX_VALUE
?Nie. Jednak przychodzą mi na myśl dwie metody złagodzenia problemu, ale obie mogą być wdrożone tylko przez programistę: pierwszą z nich jest wyświetlenie powiadomienia, system Android da aplikacjom, które robią to, wyższy priorytet niż inne. Drugim jest oszczędzanie czasu rozpoczęcia, więc gdy licznik zostanie ostatecznie zrestartowany, nie zostanie zresetowany.
źródło
onSaveInstanceState
i,onRestoreInstanceState
aby zabezpieczyć stan aplikacji, w tym informacje o zegarze. Nie musisz biegać na pierwszym planie. Nawet jeśli jest to alarm, którego możesz użyć,AlarmManager
aby upewnić się, że zostanie wykonany później. Jedynym powodem, dla którego należy użyć Pierwszego planu, jest: 1. Trwa faktyczna aktywność na pierwszym planie, np. Odtwarzanie muzyki lub wyświetlanie wideo. 2. Chcesz zachować otwarte połączenie danych (np. IMAP IDLE (push)).Pierwsza metoda: - Jeśli wykonasz Przyklejony wątek w programie, tak, możesz zdecydowanie wymusić działanie programu. Pamiętaj jednak, że użytkownik w trybie ustawień zaawansowanych może zatrzymać działające aplikacje w tle. Jeśli jednak napiszesz lepki wątek w taki sposób, że zaczyna się przy każdym zdarzeniu podarunku, możesz to osiągnąć.
Druga metoda: JEŚLI użytkownik nie jest zrootowany na Androida i chcesz uruchomić aplikację na tym tle. użyj skryptu SL4 w tle aplikacji. użyj skryptu, który wykona sprawdzenie w tle i programów, i napisz interfejs, aby pokazać coś innego.
Np .: W większości silników gier jest to wbudowane. Łączą się z serwerami, mimo że użytkownik wyłączył aplikację. Powodem, dla którego silnik tworzy wiele skryptów w telefonie, który jest losowo sprawdzany przy poszczególnych wydarzeniach i że TRIGGER jest używany do ciągłego uruchamiania aplikacji na tle pierwszego planu.
*** Przepraszamy za TYPO .. sprawdzanie pisowni niedostępne. Mam nadzieję, że osiągniesz to, co chciałeś.
źródło
Czasami istnieje opcja zablokowania aplikacji. Zapobiega to zabijaniu lub zatrzymywaniu tej aplikacji w telefonie.
Opcja blokady nie jest dostępna w samym systemie operacyjnym, a niektóre aplikacje innych firm, takie jak GO Task Manager itp., Mogą pomóc.
źródło