作者darkk6 (Mr. Pan)
看板AndroidDev
标题[问题] 电话状态 Receiver 是否会延迟触发?
时间Wed Sep 16 18:00:41 2015
不好意思,标题限制的关系,我要问的是:
READ_PHONE_STATE
我在某篇 Stack Overflow 的回应看到了使用底下 Code 监听来电的事件
http://pastie.org/10423164
和其他写法不同的是,他并没有在 Receiver 中加入 Listener,
如:
TelephonyManager mgr = (TelephonyManager)context
.getSystemService(Context.TELEPHONY_SERVICE);
mgr.listen( myListener , PhoneStateListener.LISTEN_CALL_STATE);
而是纯粹靠着 Broadcast Receiver 去处理来电的事件监听。
我测试过,这样使用没有问题,能够正常的接收到三个事件(铃响、接通、挂断)
但是在某台手机上, 却发现常常会有,电话来了没触发 Receiver 的问题
程式 onReceive 中的 Log.d() 都没显示。
不过这种情况发生时,只要我挂掉电话 (大概让他想个 10 秒,直接挂断)
後大概 1~3 秒,才会看到 Logcat 跑出那些讯息。
想请问,这个状况会有可能是什麽问题呢?
比如说手机记忆体用量太大,造成我的 Receiver 晚启动,或者有甚麽其他问题?
感谢~~
PS : 那台手机虽然常常有这个状况,但有时候也是正常的,电话一响就出现讯息
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.254.16.222
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1442397645.A.C51.html
1F:推 hungys: 也是有可能是那台手机framework有问题 09/18 11:09
2F:→ qweqweqweqwe: 用receiver就要有可能收不到的心理准备.. 09/19 02:12
3F:→ darkk6: 目前将 priority 加高 好像还蛮有效的XD 09/19 21:05