如何销毁PhoneStateListener类的对象?

5

有些情况下,我不想监听手机的状态。如何销毁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()); 
 }
2个回答

17
在文档中指出,要注销监听器,请传递监听器对象和标志LISTEN_NONE。请参考文档中的说明和LISTEN_NONE标记。保留HTML标记。

10

根据这个答案,你应该保留对TelephonyManagerWnetPlayerPhoneCallListener的引用,并将其设置为禁用状态,像这样:

mTm.listen(phoneCallListener, PhoneStateListener.LISTEN_NONE);

我不知道为什么他们没有标准的addListener()removeListener()方法,但这似乎是解决你的问题的可接受方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接