如何销毁PhoneStateListener类的对象?

Krz*_*cki 3 android state listener destroy

在某些情况下,我不想听我手机的状态.如何销毁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()); 
 }
Run Code Online (Sandbox Code Playgroud)

Dan*_*n S 12

它在文档中声明传递侦听器对象并标记LISTEN_NONE以取消注册侦听器.


kco*_*ock 8

根据这个答案,您应该保留对TelephonyManagerand 的引用WnetPlayerPhoneCallListener,并将其设置为disabled,如下所示:

mTm.listen(phoneCallListener, PhoneStateListener.LISTEN_NONE);
Run Code Online (Sandbox Code Playgroud)

为什么他们不仅仅有标准addListener()removeListener()方法,我不知道,但这似乎是解决问题的公认方法.