[Java]
TelephonyManager telephonyManager = (TelephonyManager) getSystemService (Context. TELEPHONY_SERVICE );
TelephonyManager. listen (new PhoneListener (), PhoneStateListener. LISTEN_CALL_STATE );
[Java]
Private class PhoneListener extends PhoneStateListener {
@ Override www.2cto.com
Public void onCallStateChanged (int state, String incomingNumber ){
Super. onCallStateChanged (state, incomingNumber );
Switch (state ){
Case TelephonyManager. CALL_STATE_RINGING: // call status
Break;
Case TelephonyManager. CALL_STATE_OFFHOOK: // Answer status
Break;
Case TelephonyManager. CALL_STATE_IDLE: // return to idle state after hanging up
Break;
Default:
Break;
}
}
}
The above code is a listener for phone status changes. Here we need to understand the listener mechanism.
Android has two types of event processing mechanisms: listener and callback.
A listener-based event processing
Three types of objects are involved: EventSource, Event, and EventListener)
The process of event processing by the listener is as follows (delegate: Delegation ):