2011-02-03 18 views
5

ludzie hej, Mam prawie skończył pisać swoją pierwszą aplikację na Androida. Jest to aplikacja do tworzenia notatek z dodawaniem, edytowaniem ekranów widoków itp.Android - Który jest bardziej wydajny?

Początkowo zajmowałem się przenoszeniem między ekranami w ramach jednej aktywności, tworząc nowe obiekty układu, takie jak tabele itp ... i wyświetlając je. Po kolejnych lekturach zmieniłem sposób poruszania się między ekranami, używając różnych czynności dla różnych ekranów. Jednak każde działanie, które nazywa się intencją, pobiera dużą liczbę zmiennych z głównego działania za pomocą setExtra i przekazuje również dużą liczbę zmiennych.

Teraz chcę, aby moja aplikacja była tak wydajna, jak to tylko możliwe i osobiście uważam, że obsługa wszystkiego w jednym działaniu jest mniej wymagająca od pamięci i intensywniejsza procesorowi, chociaż ma to negatywne znaczenie. Zmienne są zawsze obecne (i zużywają pamięć). w osobnej działalności, w której są zabijani po zakończeniu(). Ale jesteście bardziej kompetentni ode mnie, więc jak myślisz, jaki jest najlepszy sposób na zrobienie tego?

+0

Za to, co chcesz zrobić, to dziwne, że trzeba przejść tak wiele zmiennych między działaniami. Jakie to zmienne? A co masz na myśli przez "dużą liczbę"? – Dalmas

+0

Czy w rzeczywistości mierzyłeś jakieś problemy z wydajnością, czy otrzymałeś okno dialogowe ADNR? Jeśli nie, prawdopodobnie nie powinieneś przejmować się wydajnością. –

Odpowiedz

5

Jeśli rozpoczęcie nowej działalności na nowych ekranach wtedy dodać, że aktywność na stosie. W ten sposób użytkownik może cofnąć się i wrócić do poprzedniej aktywności. Po prostu zmiana układu usuwa tę funkcję. Wątpię, abyś miał problemy z wydajnością w obu kierunkach.

Najlepszą praktyką byłoby, aby rozpocząć nową działalność, najlepsza wydajność może być użycie aktualnego podejścia.

+1

Również podejście wielu działań ułatwia ponowne użycie. –

1

Wszystkie Twoje działania będą przebywać i uruchomić w tym samym procesie. Nie ma więc powodu, aby omijać stos zmiennych. Możesz (na przykład) umieścić je w singletonie, który reprezentuje twój kontekst. Kiedy jedna czynność przechodzi na drugą, wypełnia singleton, a następny pobiera z niej dane.

Oczywiście jeśli kiedykolwiek zamiar działalność zewnętrzną do interakcji z nich może trzeba przemyśleć to podejście, ale myślę, że będzie dobrze, aby utrzymać swoje poglądy jako odrębne działania. Nawet jeśli pamięć jest jeszcze trochę wyższa, myślę, że lepiej jest robić wszystko poprawnie i tylko martwić się optymalizacją wtedy i tylko wtedy, gdy staje się oczywiste, że tego potrzebujesz.

Powiązane problemy