Android P теперь будет аварийно завершать работу приложений вместо того, чтобы сообщать вам, что они не отвечают (так называемый диалог «Приложение не отвечает» или ANR). Эту тактику используют, чтобы наказать разработчиков за плохо сделанные приложения, и она может сработать.
Среди всех новые дополнения для Android P, включая новые жесты навигации, Ломтики API и новый биометрический API, есть и другие изменения, которые также могут оказать влияние более тонким образом. Одним из них является удаление диалоговых окон «Приложение не отвечает» (ANR) для приложений переднего плана. Диалоговое окно ANR появляется, когда что-то мешает основному потоку пользовательского интерфейса отвечать. Когда это происходит в Android Oreo или более ранней версии, пользователю отображается диалоговое окно ANR, чтобы сообщить ему об этом. Теперь в Android P приложение просто вылетает без какого-либо уведомления для пользователя.
Зачем аварийно завершать работу приложения, не сообщая пользователю, что на самом деле произошло? Это не обязательно приносит пользу пользователям, но заставляет разработчиков уделять особое внимание определенным проблемам и избегать их. Разработчикам рекомендуется ничего не запускать в потоке переднего плана. В исходном видео, указанном ниже, Google обсуждает потенциальные решения, позволяющие избежать этой проблемы, включая
Асинхронный API. Недавние ограничения Android на фоновые службы означают, что переход на службу, вероятно, здесь не лучшая идея. Мы рекомендуем послушать доклад ниже, если вы хотите узнать больше о решении этой проблемы:Подход Google имеет смысл, но не слишком ли это? Может показаться, что приложения Android дают сбой реже, но уведомления менее заметны пользователю. тогда разработчикам придется следить за своими инструментами сбоев, такими как отчеты о сбоях Firebase, а не за прямым пользователем. обратная связь. Если вы являетесь разработчиком последней бета-версии P, вы можете вернуть эти диалоги сбоя, включив настройку в параметрах разработчика.
Это не единственное изменение в Android P, касающееся видимости того, что приложения делают в фоновом режиме. Android Oreo представил постоянное уведомление, когда некоторые приложения работали в фоновом режиме если в этом приложении не было уведомления с достаточно высоким приоритетом, но Android P теперь полностью избавляется от этого уведомления. Единственная разница в том, что диалоговое окно ANR не так раздражало, как размещение постоянного уведомления.
Через: /r/AndroidDev