2012-09-15 73 views
1

如果互聯網連接丟失,我的應用程序會向用戶顯示AlertDialog。爲此,我使用BroadcastReceiver,它會不斷檢測網絡連接,並在沒有網絡可用時顯示對話框。一切工作正常,並按預期。爲什麼BroadcastReceiver不必要地被調用?

問題在進行呼入或呼出時開始。即使用戶接聽來電或打出電話,AlertDialog(通知有關互聯網連接)也會彈出。這留下了非常糟糕的用戶體驗。

任何人都可以請指導我爲什麼發生?請幫忙。提前Thanx。

回答

2

那麼每個網絡運營商都提供單次連接。這意味着,當您開始通話時,您的網絡服務會關閉,當沒有通話時,它就會出現。因此,當您撥打電話時,請檢查設備中的GPRS /網絡符號不可用(離線)。

這就是您的廣播接收器響應的原因。

希望這會幫助您解決問題。

+0

那麼我該怎麼做才能阻止AlertDialog彈出? –

+0

是否必須使用PhoneStateListener檢測手機的狀態,然後決定是否顯示對話框? –

+0

如果我的回答是正確的,你可以接受嗎?所以其他人可以使用它。決定是否顯示應確實基於'PHONE_STATE'。 –

相關問題