2012-07-23 11 views
11

Załóżmy, że mamy domyślną, pustą aktywność z domyślnym zachowaniem, uruchamianą z domyślnymi flagami zamiaru. Użytkownik naciska przycisk powrotu na urządzeniu. Działanie znika ... ale jak właściwie?Zachowanie przycisku Wstecz systemu Android

  • Czy naciśnięcie przycisku wstecz zachowuje się tak samo jak finish()?
  • Czy działalność została natychmiast zniszczona (nazywa się onDestroy)?
  • Czy działanie jest gwarantowane, ale czy nie zostanie zniszczone?
  • Czy jest szansa, że ​​działanie nie zostanie zniszczone i ta instancja zostanie ponownie użyta, gdy ta czynność zostanie uruchomiona w przyszłości? (Tak tylko i onStop ->onStart i onResume nazywa?)

szukam wiarygodnego odpowiedź, więc proszę nie odpowiadać, jeśli nie jesteś absolutnie pewien, co się tutaj dzieje.

+4

To może być dla Ciebie interesujące: http://developer.android.com/training/basics/activity-lifecycle/index.html –

+0

Czy możesz opublikować swój kod, abyśmy mogli lepiej ocenić –

+1

Czy jest coś w 'defaultie? , pusta aktywność z domyślnym zachowaniem, uruchomiona z domyślnymi flagami intencji, których nie można odtworzyć? Po prostu utwórz domyślny projekt w swoim IDE. –

Odpowiedz

6

http://developer.android.com/training/basics/activity-lifecycle/recreating.html

Ten podrozdział z oficjalnej dokumentacji systemu Android, która odpowiada na twoje pytanie. Jest to podrozdział tematu Managing the Activity Lifecycle, który można przeczytać tutaj: http://developer.android.com/training/basics/activity-lifecycle/index.html

Jest to z pewnością warto przeczytać cały rozdział, aby poznać szczegóły dotyczące androidy zachowanie aktywności. Ale podrozdział (pierwszy link) jest istotną częścią tego pytania.

+0

To jest [link-only answer] (http://meta.stackexchange.com/q/8231/247470), czy możesz zacytować odpowiednie części dokumentu? Wydaje się, że chcesz zrobić coś dobrego, zmuszając ludzi do czytania tych artykułów, wypróbowania metody Sokratejskiej i użycia [markera spoiler] (http://meta.stackexchange.com/q/1191/247470). – TWiStErRob

1

Gdy użytkownik naciśnie klawisz WSTECZ, bieżące działanie zostanie pobrane z góry stosu (działanie jest gwarantowane, że zostanie zniszczone, ale nie natychmiast, może być, gdy zasoby systemowe są niskie) i poprzednia aktywność zostanie wznowiona (przywrócono poprzedni stan jego interfejsu).

Which actions does the back button/back key on Android trigger?

+0

Proszę odnieść się do tego pytania: http://stackoverflow.com/questions/4778754/kill-activity-on-back-button Jeśli to zawsze jest zniszczone, to dlaczego wymuszają zakończenie() z tyłu przycisk? –

+0

Sprawdź również zaakceptowaną odpowiedź tutaj: http://stackoverflow.com/questions/3249332/did-back-key-destroy-an-activity –

2

Po naciśnięciu tyłu, (jeśli nie jest przechwytywany przez coś podobnego klawiaturze, fragment, działalności, etc.) systemu operacyjnego (poprzez ActivityManager prawdopodobnie) będzie starał się pokazać użytkownikowi wcześniejszej aktywności w bieżącym zadaniu (ponownie, ignorując tylny stos fragmentów).

Jeśli nie ma takiej aktywności, zadanie zostanie przerwane, a użytkownik przejdzie do poprzedniego zadania - ekranu głównego najczęściej lub innej aplikacji, która mogła uruchomić aplikację.

Otrzymasz wkrótce nazwę onDestroy (zależnie od tego, ile czasu zajmie uruchomienie następnej czynności, ale na dobrym telefonie powinno być mniej niż 100-200 ms).

Twoja instancja aktywności nie zostanie ponownie wykorzystana po onFinish. Dzieje się tak, zanim działanie zostanie zniszczone, więc jeśli potrzebujesz innej aktywności tego samego typu, system operacyjny utworzy kolejną instancję.

+0

Nie o to pytałem. Pytanie jest wystarczająco precyzyjne. –

+0

"Działalność znika ... ale jak, właściwie?" - Myślę, że skierowałem twoje pytanie: –

+0

I to jest twój problem. Wystarczy przeczytać pierwsze zdanie i odpowiedzieć bez zastanowienia. Jeśli przeczytasz resztę, zauważysz, że wyjaśniłem, o co dokładnie pytam. –

2

użyć powinien wyglądać w ten try this

i proszę powiedzieć specyficzny, co chcesz zrobić z tyłu przycisk do swoich działań domyślnych ......

0

Zdecydowanie onDestroy() jest nazywane ..... Istnieje kilka scenariuszy, w których Twoja aktywność jest niszczona ze względu na normalne zachowanie aplikacji, na przykład gdy użytkownik naciśnie przycisk Wstecz lub aktywność sygnalizuje zniszczenie przez wywołanie finish().

Powiązane problemy