Przeczytałem przewodnik programisty dla programistów Androida i kilka artykułów w Internecie. Nadal nie mam pojęcia, co to jest singleTask
launchmode
. Weźmy przykład:Informacje o trybie androidowym "singleTask"
Użytkownik uruchamia aplikację1, Android rozpoczyna nowe zadanie. Załóżmy, że Apl1 tworzy działania w celu obserwacji:
ActivityA -> ActivityB -> ActivityC
Tak Zadania1 wygląda.
Następnie użytkownik kliknij ustandaryzowanej domu i zdecydować się na uruchomienie APP2, więc Zadania1 idzie w tle i Android rozpocząć nowe zadanie: task2, użytkownik robi coś:
ActivityD -> ActivityE
teraz powiedzmy, ActivityE
próbie uruchomienia ActivityB
, i ActivityB
ma tryb uruchamiania singleTask
.
Rozumiem, że zadanie 1 pojawia się ponownie w interfejsie, a zadanie 2 przechodzi w tło. I Zadania1 wygląda teraz tak:
ActivityA -> ActivityB
Co oznacza:
ActivityC
zostanie usunięty z Zadania1 i ActivityB staje na górę działalności.Jeśli użytkownik teraz kliknąć na przycisk „Wstecz”, przyjdzie do
ActivityA
z Zadania1 zamiast tyłu doActivityE
z task2
mam rację?
Dzięki
dziękuję, ale odpowiedź w tym wpisie sprawia, że mylę: http://stackoverflow.com/questions/3219726/android-singletask- lub -jedenzwiązanie-uruchamiania-trybu nie ma nigdy więcej niż jednego wystąpienia działania "singleTask" lub "singleInstance", więc instancja powinna obsłużyć wszystkie nowe intencje ... Jednak działanie "singleTask" może lub nie mieć inne czynności nad nim w stosie. Jeśli tak, to nie jest w stanie poradzić sobie z intencją, a zamiar zostaje odrzucony. (Mimo że zamiar został odrzucony, jego nadejście spowodowałoby, że zadanie pojawi się na pierwszym planie, gdzie pozostanie.) – cn1h
"Oznacza to, że po kliknięciu przycisku strony głównej wszystkie działania powyżej pojedynczego zadania zadania (które w twoim case is ActivityB) są usuwane ze stosu. " Po prostu znalazłem to w projekcie, tak jest w tym przypadku. Dzięki. –
Łącze "Sendspace" jest zepsute –