2012-09-15 1 views
1

인터넷 연결이 끊어지면 내 앱에서 AlertDialog를 사용자에게 표시하고 있습니다. 이 경우 나는 네트워크 연결을 끊임없이 감지하고 사용할 수있는 네트워크가없는 경우 대화 상자를 표시하는 BroadcastReceiver를 사용하고 있습니다. 모든 것이 잘 작동하고 예상대로입니다.왜 BroadcastReceiver가 불필요하게 호출 되었습니까?

수신 또는 발신 전화가 걸려 올 때 문제가 발생합니다. AlertDialog (인터넷 연결에 대해 알리는)는 사용자가 걸려 오는 전화에 응답하거나 나가는 전화를 걸더라도 팝업됩니다. 이것은 매우 나쁜 사용자 경험을 남깁니다.

아무도 내게 왜 그런 일이 일어나는지 안내 해줄 수 있습니까? 도와주세요. 고맙습니다.

답변

2

모든 네트워크 사업자는 번에 한 번에 단일 연결을 제공합니다.. 즉, 전화를 걸면 네트워크 서비스가 중단되고 아무런 통화도 없을 때이를 의미합니다. 따라서 언제든지 전화를 걸면 장치 자체에서 GPRS/네트워크 기호를 확인할 수 없습니다 (오프라인).

브로드 캐스트 리시버가 응답하는 이유입니다.

호프가이 문제를 해결하는 데 도움이 되길 바랍니다.

+0

이 AlertDialog가 나타나지 않게하려면 어떻게해야합니까? –

+0

PhoneStateListener를 사용하여 전화 상태를 감지하고 대화 상자를 표시할지 여부를 결정해야합니까? –

+0

내 대답이 맞으면 받아 들여 주시겠습니까? 그래서 다른 사람들이 그것을 사용할 수 있습니다. 보여줄지 안할지 결정하는 것은 실제로'PHONE_STATE'에 근거해야합니다. –