«Яндекс» говорит, что исправил ошибку в Яндекс.Метро для Android, из-за которой приложение фоном отправляло данные о местоположении пользователя на сервера компании, — пост о выпуске новой версии с исправленным поведением опубликован на Хабре.
Однако, в публикации на Хабре нет четко-сформулированного описания ошибки. Следите за руками:
Существование проблемы постоянных фоновых загрузок на сервер признается:
[М]ы исправили ошибки, приводившие к описанному поведению. Сейчас оно раскатывается в сторе. Напомним, что приложение в фоновом режиме могло отправлять данные на сервера Яндекса. Мы в изначальном посте сразу же ответили, что это баг и такое поведение не было заложено в Метро.
Затем говорится, где внутри приложения был расположен код загрузки:
Как же возникла эта ошибка? Отправка статистики была вставлена в обработчик Application.onCreate (), который вызывается каждый раз при инициализации любого из процессов Метро, не учитывая, что бывают не только запуски приложения пользователем, но и фоновые вызовы процессов приложения.
Но откуда и почему код onCreate () вызывался с высокой частотой в посте однозначно не говорится.
В тексте есть объяснение, зачем приложению нужно было разрешение на старт при запуске системы:
Яндекс.Метро было подписано на событие загрузки системы, потому что в нём есть опциональная возможность включить поисковый виджет в области нотификаций, который должен загружаться вместе со стартом системы. Процесс Метро запускается в процессе загрузки ОС, проверяет состояние этой опции и, если виджет не включен, выходит, заканчивая свою работу.
Однако старт при запуске не объясняет ежеминутной загрузки данных о местоположении пользователя.
В тексте также упоминается, что Яндекс.Метрика для приложений (система сбора статистики, которую создатели приложений могут внедрить в свои продукты) не пытается работать с сетью в каждом приложении, в котором установлена, а выбирает одно приложение на телефоне как ведущее, создаёт в его рамках отдельным процессом сервис, через который все остальные приложения отправляют свою статистику. И таким «главным» приложением может быть выбрано любое из тех, где есть Метрика (в том числе и Метро).
Также в тексте упоминается, что на время жизни процесса приложения влияет виджет.
В итоге, Яндекс признает проблему, признает, что эта проблема может быть не только в Яндекс.Метро, но и в других приложениях компании. Но не дает четкого ответа, откуда и почему код отправки местоположения пользователя вызывался у некоторых клиентов раз в минуту.