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()); 
 }
4

2 に答える 2

17

ドキュメントでは、リスナー オブジェクトを渡し、LISTEN_NONEにフラグを立ててリスナーの登録を解除するように記載されています。

于 2012-04-25T17:04:06.017 に答える
10

この回答 に従ってTelephonyManagerおよびへの参照を保持し、次のWnetPlayerPhoneCallListenerように無効に設定する必要があります。

mTm.listen(phoneCallListener, PhoneStateListener.LISTEN_NONE);

addListener()彼らが標準と方法だけを持っていない理由removeListener()はわかりませんが、これは問題を解決するための受け入れられた方法のようです。

于 2012-04-25T17:03:58.010 に答える