Android:为什么PhoneCallListener在活动结束后还活着?

Meh*_*ico 3 android phone-call telephonymanager phone-state-listener

我在我的活动中使用了一个电话听众,但在完成我的活动后,用户拨打电话,我的电话听众没有死,再次开始活动!请帮我.

phoneListener = new PhoneCallListener();
telephonyManager = (TelephonyManager) 
            TransferActivity.this.getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.listen(phoneListener,  PhoneStateListener.LISTEN_CALL_STATE);
Run Code Online (Sandbox Code Playgroud)

PhoneCallListener类:

private class PhoneCallListener extends PhoneStateListener {
    boolean isPhoneCalling = false;
    @Override
    public void onCallStateChanged(int state, String incomingNumber) {

        if (TelephonyManager.CALL_STATE_RINGING == state) {
        }
        if (TelephonyManager.CALL_STATE_OFFHOOK == state) {
            isPhoneCalling = true;
        }
        if (TelephonyManager.CALL_STATE_IDLE == state) {
            if (isPhoneCalling) {
                isPhoneCalling = false;
                    Intent intent = getIntent();
                    startActivity(intent);
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Lal*_*ani 5

您是否尝试将侦听器设置为null,

telephonyManager.listen(null,  PhoneStateListener.LISTEN_NONE);
Run Code Online (Sandbox Code Playgroud)


Rap*_*lee 5

该文件说:

要取消注册侦听器,请传递该侦听器对象,并将events参数设置为PhoneStateListener#LISTEN_NONE(0)

这是文档的链接。