Попробуйте выполнить следующее: я нашел похожий стек ошибок для выставления счетов:
Не вызывайте никаких сетевых вызовов, чтения или записи файлов, работающих баз данных и т. Д. В вашем MyPhoneStateObserver или любой вещательный приемник.Возможно, вы вызываете какой-то метод, который блокирует поток приложения.Я бы посоветовал вызывать такие методы из отдельного потока .
Есть ли какое-либо объяснение, почему это происходит? Я думаю, вам следует дважды проверить свой MyPhoneStateObserver класс, я полагаю, вы делаете некоторые сетевые вызовы, чтение или запись файлов, рабочие базы данных или любая операция, которая должна выполняться в отдельном потоке.Операции / код, которые вы реализовали в этом классе или переопределенном методе, пытаются сделать это в отдельном потоке.
Я ожидаю, что ANR произойдет, если время выполнения> 10 секунд, поэтому должна быть тупиковая ситуация? ANR возникает, когда основной поток заблокирован на некоторое время.В частности, 5 секунд в Activity, 10 секунд в BroadcastReceiver и 20 секунд в Service.
Возможным решением будет перенести всю обработку событий в другой поток, но это не объясняет проблемуи я ожидаю, что асинхронное выполнение также зависнет? Да, вы правы, вы должны перенести свой код в другой поток.Но я не думаю, что asysnctask будет работать здесь, в сервисах или фоновых слушателях, я полагаю, вам нужно будет использовать thread