TelephonyManager.listen 监听使用的有关问题--怎么实现TM同时监控多个状态的改变

求助:TelephonyManager.listen 监听使用的问题--如何实现TM同时监控多个状态的改变
TelephonyManager.listen(PhoneStateListener, PhoneStateListener.XXXX);

如何实现同时监听两个状态的改变呢?直接设置时实际时最有一次设定有效
tm.listen(strenthL, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
tm.listen(pl, PhoneStateListener.LISTEN_CELL_INFO);
tm.listen(pl, PhoneStateListener.LISTEN_CALL_STATE);

在设置监听时有多个选项:
LISTEN_CALL_FORWARDING_INDICATOR 
LISTEN_CALL_STATE 
LISTEN_CELL_LOCATION 
LISTEN_DATA_ACTIVITY 
LISTEN_DATA_CONNECTION_STATE 
LISTEN_MESSAGE_WAITING_INDICATOR 
LISTEN_NONE 
LISTEN_SERVICE_STATE 
LISTEN_SIGNAL_STRENGTH 
对应不同的回调函数:
onCallForwardingIndicatorChanged(cfi)
onCallStateChanged(state, incomingNumber)
onCellInfoChanged(cellInfo)
onCellLocationChanged(location)
onDataActivity(direction)
onDataConnectionStateChanged(state)
onDataConnectionStateChanged(state, networkType)
onMessageWaitingIndicatorChanged(mwi)
onServiceStateChanged(serviceState)
onSignalStrengthChanged(asu)
onSignalStrengthsChanged(signalStrength)

------解决思路----------------------
你可以试试这种形式 
tm.listen(pl, PhoneStateListener.LISTEN_CELL_INFO
------解决思路----------------------
PhoneStateListener.LISTEN_CALL_STATE);
------解决思路----------------------
API的有些flag是互斥的,有些则可以叠加的。

/*
    * To register a listener, pass a {@link PhoneStateListener}
     * and specify at least one telephony state of interest in
     * the events argument.
*/
public void listen(PhoneStateListener listener, int events)

从API文档说明来看,第二个参数是events,表示多个事件;而且注释里也说明“至少一个事件状态”,所以events是可以多个flag叠加的,即你可以一次性同时注册多个事件的监听器。