PhoneStateListener
我使用以下代码注册了一个:
mTm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
mTm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE
| PhoneStateListener.LISTEN_CELL_LOCATION
| PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
并使用以下代码取消注册:
mTm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
但在极少数情况下,即使在未注册之后也会调用侦听器。
重要提示:
注册和注销都是从不是 UI 线程的同一个线程完成的。
问题:
如果电话状态已更改并且更改已“发布”到侦听器并且侦听器在被调用之前未注册,那么侦听器是否仍会被调用?还是将“已发布的消息”从“队列”中删除?
注册和注销是从非 UI 线程完成的这一事实是否重要?