Android P powoduje teraz awarię aplikacji, zamiast informować Cię, gdy nie odpowiadają

Android P będzie teraz powodować awarie aplikacji, zamiast informować, że nie odpowiadają (co jest określane jako okno dialogowe „Aplikacja nie odpowiada” lub ANR). Jest to taktyka stosowana w celu dotarcia do programistów za źle wykonane aplikacje i może po prostu zadziałać.

Wśród wszystkich nowe dodatki do Androida P, w tym nowe gesty nawigacyjne, Plasterki API i nowe API biometryczne, istnieją pewne inne zmiany, które mogą mieć wpływ w bardziej subtelny sposób. Jednym z nich jest usunięcie okien dialogowych Aplikacja nie odpowiada (ANR) dla aplikacji działających na pierwszym planie. Okno dialogowe ANR pojawia się, gdy coś uniemożliwia odpowiedź głównego wątku interfejsu użytkownika. Gdy dzieje się to w systemie Android Oreo lub starszym, użytkownikowi wyświetla się okno dialogowe ANR, aby go o tym poinformować. Teraz w systemie Android P aplikacja po prostu ulegnie awarii bez żadnego powiadomienia dla użytkownika.

Po co zawieszać aplikację, nie informując użytkownika, co się właściwie stało? Niekoniecznie jest to korzyść dla użytkowników, ale zmusza programistów do zwrócenia szczególnej uwagi na pewne problemy i upewnienia się, że takich problemów nie ma. Zachęcamy programistów, aby nie uruchamiali niczego w wątku na pierwszym planie. W filmie źródłowym, do którego link znajduje się poniżej, Google omawia potencjalne rozwiązania pozwalające uniknąć tego problemu, w tym:

API AsyncTask. Niedawne ograniczenia Androida dotyczące usług w tle oznaczają, że przejście na usługę prawdopodobnie nie jest tutaj dobrym pomysłem. Jeśli chcesz dowiedzieć się więcej na temat rozwiązania tego problemu, zalecamy wysłuchanie poniższej rozmowy:

Podejście Google ma sens, ale czy to za dużo? Może to sprawiać wrażenie, że aplikacje na Androida ulegają awariom rzadziej, ale powiadomienia są mniej widoczne dla użytkownika wtedy programiści będą musieli zwracać uwagę na swoje narzędzia do usuwania awarii, takie jak raportowanie awarii Firebase, a nie kierować użytkownika informacja zwrotna. Jeśli jesteś programistą najnowszej wersji P beta, możesz przywrócić te okna dialogowe awarii, włączając odpowiednie ustawienie w Opcjach programisty.

To nie jedyna zmiana w Androidzie P dotycząca widoczności tego, co aplikacje robią w tle. W Androidzie Oreo wprowadzono trwałe powiadomienie, gdy niektóre aplikacje działały w tle jeśli ta aplikacja nie miała powiadomienia o wystarczająco wysokim priorytecie, ale Android P teraz całkowicie pozbywa się tego powiadomienia. Jedyna różnica polega na tym, że okno dialogowe ANR nie było tak irytujące, jak umieszczenie trwałego powiadomienia.


Przez: /r/AndroidDev