2

即时通讯在我的活动中使用电话听众,但在完成我的活动后,用户拨打电话,我的电话听众没有死机,再次启动活动!请帮帮我。Android:为什么在活动结束后PhoneCallListener仍然活着?

phoneListener = new PhoneCallListener(); 
telephonyManager = (TelephonyManager) 
      TransferActivity.this.getSystemService(Context.TELEPHONY_SERVICE); 
telephonyManager.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE); 

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); 
       } 
      } 
     } 
    } 
} 
+0

Intent intent = getIntent(); startActivity(intent); 你为什么要调用上面的代码? – AAnkit 2012-07-26 10:13:19

+0

在你的'onPause()'方法中注销你的监听器。 – 2012-07-26 10:16:49

+0

谢谢,但如何? – Mehdico 2012-07-26 10:21:13

回答

5

你有没有尝试设置监听器为空,

telephonyManager.listen(null, PhoneStateListener.LISTEN_NONE); 
3

文档说:

要取消注册监听器,通过监听器对象并将events参数设置为LISTEN_NONE(0)。

这里是Doc的链接

相关问题