Pokazywanie postów oznaczonych etykietą Koligacja. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Koligacja. Pokaż wszystkie posty

piątek, 30 marca 2018

Co to takiego jest to Affinity?

Koligacja (affinity) aktywności (activity) określa do jakiego zadania dana aktywność preferowanie należy.

Domyślnie jest taka sama dla wszystkich aktywności danej aplikacji i jej wartość określana jest przez nazwę paczki aplikacji. Dzięki temu wszystkie aktywności aplikacji są ze sobą powiązane i będą się otwierały w stosie (stack) tego samego zadania (task).

Koligację inną niż domyślna można ustawić zmieniając w manifeście wartość atrybutu taskAffinity dla wybranej aktywności. Wartość ta musi być inna niż nazwa paczki aplikacji (to jest domyślna wartość tego atrybutu).

Koligacja jest brana pod uwagę, gdy:
  • aktywność jest wywoływana z flagą FLAG_ACTIVITY_NEW_TASK - system sprawdza wtedy czy jest jakieś inne zadanie, którego aktywności mają tę samą koligację co wywoływana aktywność - jeśli tak, to aktywność jest do niego przypisywana, jeśli nie to wywoływana aktywność otwiera nowe zadanie
  • atrybut allowTaskReparenting dla danej aktywności ma wartość true - wtedy każde zadanie, z którym dana aktywność ma koligację, przechodząc do gółwnego wątku (foreground) przypisuje sobie na górę stosu i wyświetla tę aktywność
Koligacja przyda się również gdy paczka APK zawiera więcej niż jedną aplikację - wtedy można różne aplikacje odpowiednio ze sobą powiązać (jak mieć 2 aplikacje w jednym .apk - https://stackoverflow.com/questions/10682576/one-apk-file-that-installs-two-apps)