Wydaje mi się, że wszyscy doświadczyli jego aplikacji działa świetnie, gdy próbujesz go przez szybkie 30 minut. Ale gdy aplikacja jest umieszczona w tle urządzenia na dzień lub mniej, otrzymujesz swój NullPointerExceptions
, a rzeczy nie działają zgodnie z oczekiwaniami, ponieważ Garbage Collector
ukradł twoje rzeczy. Czy istnieje sposób symulacji aplikacji działającej przez długi czas w tle?Android: symulacja długiego czasu pracy
Odpowiedz
Nie musisz czekać przez określony czas. Trzeba tylko zrobić coś, co pożera pamięć. Może to być specjalna aplikacja tworzona dla zadania, ale tak naprawdę nie musisz.
Z mojego doświadczenia większość gier wydaje się działać. Gry z dużą ilością grafiki działają najlepiej, ponieważ zużywają dużo pamięci na tekstury itp. Angry Birds lub Candy Crush będą działać również, mimo że nie ma zaawansowanej grafiki lub ciężkiego przetwarzania (prawdopodobnie dla z tego samego powodu, dla którego żują baterię). Normalnie, po zagraniu na poziomie, możesz wrócić do swojej aktywności i zobaczyć, co zgubiłeś.
Optymalnie, będziesz używać inteligentnych sposobów utrzymywania/inicjowania danych, więc nie powinno to stanowić większego problemu, ale czasami Ty (lub użytkownik) napotykasz na coś nieoczekiwanego, a to może ci pomóc śledzić to.
Ustawienia -> Opcje programistyczne -> Limit procesu w tle -> Co najwyżej 1 proces.
Nie zapomnij go przywrócić, gdy skończysz dobrze się bawić. Twoje zdrowie.
Nie ma czegoś takiego jak uśpienie. Jeśli przez uśpienie, masz na myśli nadal w pamięci RAM, stan wstrzymania, to nie ma sensu, aby przetestować go po 30 minutach, jeśli nadal jest w pamięci RAM. Wszystko będzie takie samo. GC dotyczy tylko obiektów, które nie są już przywoływane. Zatem sam GC nie wpłynie na nic. Co * wpłynie jednak na cykl życia aplikacji, to odtworzenie czynności lub fragmentów, które można przetestować za pomocą powyższej metody. –
Znowu GC będzie zbierać obiekty nieodniesione, nawet gdy aktywność jest na pierwszym planie, nie wątpiłem w to wcale. To * nie * będzie jednak zbierać przywoływanych obiektów w ogóle, w żadnym z nich. Ponieważ obiekty, których używasz w działaniu, są hostowane * wewnątrz * tej aktywności, to referencja się sprawdza. Jeśli wiesz, że jest to coś przeciwnego, prześlij referencje. Jednak w ogóle nie natknąłem się na to, co opisujesz. –
From Dev SDK: "Po zatrzymaniu aktywności obiekt Activity jest przechowywany w pamięci i jest wywoływany po wznowieniu działania. Nie trzeba ponownie inicjować komponentów, które zostały utworzone podczas dowolnej metody wywołania zwrotnego prowadzącej do stan wznowiony. "Więc jeśli nie robisz czegoś niezwykłego (gdzie oczywiście musisz się upewnić, że wszystko jest w porządku), GC nic nie zbierze; ponieważ, cóż, te obiekty nie są * śmieciami *. Jeszcze. Jedyne, co musisz sprawdzić, to czy działanie zostało zniszczone. Co znowu możesz zrobić, używając powyższej metody –
- 1. Ogórkowe scenariusze dla wyjątkowo długiego przepływu pracy
- 2. Optymalizacja czasu pracy algorytmu
- 3. Limit czasu pracy jednorożców
- 4. bookshelf.js nie znaczniki czasu pracy
- 5. Dekompresja czasu pracy silnika gry
- 6. Jak uniknąć długiego czasu kompilacji dla #define we wspólnym nagłówku
- 7. Ustawienie długiego limitu czasu dla komunikatu potwierdzenia RabbitMQ
- 8. Zrozumienie długiego sondowania: klient (android) i serwer (asp net)
- 9. Limit czasu pracy agenta serwera SQL
- 10. Sprawdzanie czasu pracy w IntelliJ IDEA
- 11. Dodawanie czasu do pracy mysqldump cron?
- 12. grawitacja symulacja
- 13. Czas trwania pojedynczego dotknięcia i długiego naciśnięcia w systemie Android
- 14. Android: jak uzyskać efekt blasku podczas długiego naciśnięcia elementu listy?
- 15. Zawijanie długiego tekstu na płótnie z systemem Android
- 16. Liczniki czasu Android NDK
- 17. Zmień opóźnienie długiego kliknięcia
- 18. Symulacja problemów z blokowaniem tabeli
- 19. Renderowanie długiego dokumentu na iPadzie
- 20. Czy Android używa NTP do synchronizacji czasu?
- 21. C# Symulacja VolumeMute naciśnij
- 22. Symulacja błędów gniazda
- 23. Domyślna symulacja Xcode
- 24. symulacja toczenia dwie kostki
- 25. Symulacja sesji interaktywnego pytona
- 26. Symulacja przezroczystości koloru
- 27. Symulacja inżynierii genetycznej
- 28. Symulacja "include_once" dla jQuery
- 29. Symulacja oprogramowania komputera kwantowego
- 30. Symulacja zapytań mysql
Co otrzymujesz "Wyjątek NullPointerException"? – andy256