События PhoneStateListener перестают получать когда-нибудь - PullRequest
1 голос
/ 21 января 2010

Мое приложение обрабатывает входящие / исходящие вызовы и отображает некоторый пользовательский интерфейс.Поэтому я использую PhoneStateListener для прослушивания изменений, таких как CALL_STATE_IDLE, CALL_STATE_RINGING, CALL_STATE_OFFHOOK.при получении вызова на мой BroacastReceiver для входящего / исходящего вызова.

В большинстве случаев все работает правильно.Но иногда мое приложение не получает события PhoneStateListener и, следовательно, оно не может изменить / очистить интерфейс.Из отзывов пользователей это обычно происходит в HTC Hero.Но я иногда сталкивался с этой проблемой и на других устройствах.

Мое первое предположение - то, что Android убивает мое приложение на полпути во время вызова из-за потребности в памяти.Если это так, есть ли способ убедиться, что Android не убивает мое приложение в такой ситуации.

Есть мысли?

Ответы [ 2 ]

1 голос
/ 21 января 2010

Если это так, есть ли способ обеспечить Android не убивает мое приложение в такой ситуации.

Нет, нет.

Возможно, вы захотите переключиться с PhoneStateListener на прослушивание для ACTION_PHONE_STATE_CHANGED трансляции Intents. Таким образом, ваш код не должен продолжать работать.

0 голосов
/ 31 августа 2011

У меня была такая же проблема: через несколько часов показалось, что слушание прекратилось. Чтобы решить эту проблему, я создал Timer, который каждые 30 минут повторяет вызов для прослушивания: создайте Timer, который вызывает класс TimerTask внутри службы, который содержит запросы на прослушивание, и выполните Timer вызов для Класс TimerTask каждые X миллисекунд. Это сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...