在某些情况下,我不想听我手机的状态。 如何销毁PhoneStateListener类的对象?
我以这种方式创建对象
try {
phoneCallListener = new WnetPlayerPhoneCallListener();
TelephonyManager mTM = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
mTM.listen(phoneCallListener, PhoneStateListener.LISTEN_CALL_STATE);
} catch(Exception e) {
Log.e("PhoneCallListener", "Exception: "+e.toString());
}
答案 0 :(得分:12)
在documentation中声明传递侦听器对象并标记LISTEN_NONE以取消注册侦听器。
答案 1 :(得分:7)
根据this answer,您应该保留对TelephonyManager
和WnetPlayerPhoneCallListener
的引用,并将其设置为禁用,如下所示:
mTm.listen(phoneCallListener, PhoneStateListener.LISTEN_NONE);
为什么他们不仅拥有标准addListener()
和removeListener()
方法,我不知道,但这似乎是解决问题的可接受方法。