我的应用程序处理传入/传出呼叫并显示一些UI。 所以我使用PhoneStateListener来监听CALL_STATE_IDLE,CALL_STATE_RINGING,CALL_STATE_OFFHOOK等更改。收到来自我的BroacastReceiver的呼叫以进行呼入/呼出呼叫。
大部分时间情况都正常。但有时我的应用程序不会收到PhoneStateListener的事件,因此无法更改/清除UI。根据用户反馈,这通常发生在HTC Hero上。但我也曾在其他设备上遇到过这个问题。
我的第一个猜测是,由于内存需求,android在呼叫期间中途杀死我的应用程序。如果是这样,有没有办法确保android在这种情况下不会杀死我的应用程序。
有什么想法吗?
答案 0 :(得分:1)
如果是这样,有没有办法确保这一点 android不是我的杀毒应用程序 在这种情况下。
不,没有。
您可能希望考虑从PhoneStateListener
切换到收听ACTION_PHONE_STATE_CHANGED
广播Intents
。这样,您的代码就不需要继续运行。
答案 1 :(得分:0)
我遇到了同样的问题:几个小时后,听力似乎被取消了。为了解决这个问题,我创建了一个Timer
,每隔30分钟就会重复一次监听:创建一个Timer
,在服务中调用一个TimerTask
类,其中包含监听请求并生成Timer
每隔X毫秒调用一次TimerTask类。这对我有用。