2010-05-08 16 views
5

Moja aplikacja stanowi działanie. Po kliknięciu przycisku aplikacja otwiera przeglądarkę ze stroną internetową. Po naciśnięciu przycisku Wstecz wraca do ekranu początkowej aktywności, ale nie wznawia ani nie wznawia działania.Przycisk Wstecz Androida nie uruchamia ponownie działania?

Po umieszczeniu całego kodu układu i kodu działania w onResume zamiast onCreate, działanie zostaje ponownie uruchomione.

Moje pytanie brzmi, czy jest to właściwy sposób, aby to osiągnąć? Czy mogę użyć onResume do narysowania układu i zainicjowania działania, czy też jest to zły projekt? Kiedy przeglądarka się uruchomi, czy początkowa aktywność zapomina o swoim układzie?

Proszę dać mi znać, co sugerujesz.

Dzięki Chris

Odpowiedz

1

Głównie należy przeczytać o Activity Life Cycle.

Inicjowanie w trybie onResume jest w porządku, o ile wykonujesz ją tylko raz. Albo masz dedykowanego członka zinicjalizowanego, albo sprawdź inną wartość, która będzie miała równoważne znaczenie, i nie zainicjuj ponownie, jeśli jest ustawiona.

+0

Moje pytanie dotyczy raczej tego, że po utworzeniu layoutu i aktywności rozpoczynającej się w metodzie onCreate wszystko było w porządku, ale kiedy wróciłem z przeglądarki, tylko układ został wyrenderowany, ale aktywność nie została uruchomiona. Co dokładnie dzieje się z układem, gdy przeglądarka otwiera się? Umieszczenie tego samego kodu w onResume, uruchamia wszystko i ponownie uruchamia działanie po naciśnięciu przycisku Wstecz. – Chris

+0

Po narysowaniu layoutu na Utwórz i rozpoczęciu działania, na przycisku Wstecz naciśnij z przeglądarki, układ jest renderowany, ale aktywność nie uruchamia się ponownie. Gdy nie zrobiłem nic w sprawie onCreate, ale narysowałem układ w onResume i rozpocząłem moją działalność, naciśnięcie przycisku Wstecz przywróciło układ i wznowiło działanie. – Chris

+0

Zgadzam się z odpowiedzią: powinieneś przeczytać linkowaną stronę: http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle ", ale kiedy wróciłem z przeglądarki, tylko układ został wyrenderowany, ale aktywność nie została uruchomiona "- nie, aktywność została zdecydowanie uruchomiona, zgodnie z definicją wywołania funkcji' onStart() '. – CommonsWare

Powiązane problemy