Do czego służy atrybut ? Przeszedłem przez documentation, ale nie mogłem zrozumieć wiele.Android Powinowactwo zadań Wyjaśnienie
Czy ktoś może wyjaśnić powinowactwo zadań w terminach laików?
Do czego służy atrybut ? Przeszedłem przez documentation, ale nie mogłem zrozumieć wiele.Android Powinowactwo zadań Wyjaśnienie
Czy ktoś może wyjaśnić powinowactwo zadań w terminach laików?
Do czego stosuje się powinowactwo zadań systemu Android?
Aplikacja dla Androida ma Działania, które tworzą stos, taki jak talia kart. Jeśli uruchomisz aplikację na Androida i zaczniesz pięć działań A, B, C, D, E. Utworzą stos. Ostatnia aktywność, która ma zostać uruchomiona i jest wyświetlana. Jeśli zamkniesz E, D pojawi się. Jeśli zamkniesz D, pojawi się C. itd.
Należy zauważyć, że Działania B
i D
są tą samą działalnością. Co się stanie, jeśli użytkownik wprowadzi pewne modyfikacje do D weather screen
, a następnie zdecyduje się zamknąć działanie, a następnie zamknie się C Map view
?
Następnie użytkownik powrócił na ekran pogodowy, a użytkownik byłby niezadowolony, ponieważ zmiany wprowadzone na poziomie D weather screen
nie zostały zapisane na poziomie B weather screen
. Chociaż jest to ta sama aktywność, jest to inny stan tej aktywności.
Użytkownik miał 5 warstw stosu działań, a dwa z nich były tą samą aktywnością. Zrzucenie wszystkich 5 ze stosu stworzy zjawisko, w którym będziesz interakcji z dwiema różnymi wersjami tego samego działania i może być dość mylące.
Użytkownicy zazwyczaj nie myślą w kategoriach sztywnego zestawu czynności. Myślą: "och, widok pogody zrobię tam zmianę", a następnie chcą wrócić do widoku mapy. Następnie wykonaj kopię zapasową, ponieważ chcą wrócić do ekranu logowania. Dlaczego pokazano B weather app
i dlaczego nie zapisano ustawień z poziomu D
?
Programista może być w stanie złagodzić pewne zamieszanie, jeśli Działania B
i D
zostały połączone w stanie. W ten sposób zmiana na jedną zmienia drugą. Za każdym razem, gdy użytkownik otwiera nowy ekran pogody, potajemnie otwiera pojedynczą instancję ekranu pogody.
W tych okolicznościach może być pożądane zmienienie poziomu czynności zadania. Użytkownik zmieniłby poziom D. Następnie cofnął się do poziomu B. I zobacz zmiany w B, które zostały wprowadzone do D.
Program utrzymuje stos, przez który można wykonać kopię zapasową, co jest miłe, a gdy użytkownik otwiera się X wystąpienia tej samej aktywności w przypadkowych miejscach, wszystkie są jednym.
slajdów z większą wyjaśnienia: http://www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack
Jak o tym, czy skorzystać z 'singleInstance' zamiast używać 'taskAffinity'? – hguser
SingleInstance ma wadę polegającą na tym, że działanie będące singlemInstance nie może mieć żadnej innej aktywności w stosie aktywności. z taskAffinity możesz skonfigurować, że jedno działanie uruchomi się w innym zadaniu, a drugie w bieżącym. – Malachiasz
W niektórych przypadkach rozwiązaniem jest SingleInstance. specjalnie, jeśli chcesz się upewnić, że twoja aktywność jest jedyną czynnością w jej zadaniu i że jest to root * niezależnie od intencji, która go stworzyła. W ten sposób możesz ujawnić tę aktywność zewnętrznym programistom i aplikacjom bez utraty kontroli nad rekordem zadań działania. –
Powinowactwo wskazuje, które zadaniem działalność woli należeć.
Powinowactwo wchodzi w grę w dwóch przypadkach:
Kiedy myślą, że rozpoczyna działalność zawiera flagę FLAG_ACTIVITY_NEW_TASK.
Gdy działanie ma atrybut allowTaskReparenting ustawiony na "true".
Zapoznaj http://developer.android.com/guide/components/tasks-and-back-stack.html
Oto bardzo dobre wyjaśnienie przykładów: https://www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack – user1269737