【问题标题】:How to destroy object of PhoneStateListener class?如何销毁 PhoneStateListener 类的对象?
【发布时间】:2012-04-25 16:57:03
【问题描述】:

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

【问题讨论】:

    标签: android listener state destroy


    【解决方案1】:

    documentation 中,它声明传递侦听器对象并标记LISTEN_NONE 以取消注册侦听器。

    【讨论】:

      【解决方案2】:

      根据this answer,您应该保留对TelephonyManagerWnetPlayerPhoneCallListener 的引用,并将其设置为禁用,如下所示:

      mTm.listen(phoneCallListener, PhoneStateListener.LISTEN_NONE);
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-09
        • 2012-05-02
        • 2015-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-29
        相关资源
        最近更新 更多